This repository was archived by the owner on Aug 18, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 12
Added new parameter #148
Merged
Merged
Added new parameter #148
Changes from all commits
Commits
Show all changes
12 commits
Select commit
Hold shift + click to select a range
9d45ed2
Added Int, List, Boolean and Double parameter
derNiklaas be7966e
Added Map parameter
derNiklaas e1473ac
Added javadoc stuff
derNiklaas 308de78
Added Color parameter (thanks @justgerd)
derNiklaas b93b859
Implemented changes from @justgerd
derNiklaas 946595c
Added URI parameter
derNiklaas aacdd21
Added missing catch block to int/double parsing
derNiklaas e688650
Added short comments to the regex
derNiklaas e5bbc81
Changed internal List/Map type to scala
derNiklaas 067384b
Removed Errorhandling and removed some useless lines
derNiklaas 692858d
Let the Colorparameter throw an exception if no regex is matched
derNiklaas 895f22f
Let the Mapparameter throw an exception if no regex is matched
derNiklaas File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
24 changes: 24 additions & 0 deletions
24
...main/scala/org/codeoverflow/chatoverflow/requirement/parameter/BooleanParameterImpl.scala
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
package org.codeoverflow.chatoverflow.requirement.parameter | ||
|
||
import org.codeoverflow.chatoverflow.api.io.parameter.BooleanParameter | ||
import org.codeoverflow.chatoverflow.registry.Impl | ||
import java.lang.Boolean | ||
|
||
/** | ||
* A parameter holding a boolean value. | ||
*/ | ||
@Impl(impl = classOf[BooleanParameter]) | ||
class BooleanParameterImpl extends BooleanParameter { | ||
private var value: Boolean = null | ||
|
||
override def getType: Class[Boolean] = classOf[Boolean] | ||
|
||
override def serialize(): String = get().toString | ||
|
||
override def get(): Boolean = value | ||
|
||
override def deserialize(value: String): Unit = set(Boolean.parseBoolean(value)) | ||
|
||
override def set(value: Boolean): Unit = this.value = value | ||
|
||
} |
50 changes: 50 additions & 0 deletions
50
src/main/scala/org/codeoverflow/chatoverflow/requirement/parameter/ColorParameterImpl.scala
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
package org.codeoverflow.chatoverflow.requirement.parameter | ||
|
||
import org.codeoverflow.chatoverflow.api.io.parameter.ColorParameter | ||
import org.codeoverflow.chatoverflow.registry.Impl | ||
import java.awt.Color | ||
|
||
/** | ||
* A parameter holding a Color value. | ||
*/ | ||
@Impl(impl = classOf[ColorParameter]) | ||
class ColorParameterImpl extends ColorParameter { | ||
private var value: Color = null | ||
|
||
override def getType: Class[Color] = classOf[Color] | ||
|
||
override def serialize(): String = s"${value.getRed},${value.getGreen},${value.getBlue},${value.getAlpha}" | ||
|
||
override def get(): Color = value | ||
|
||
override def deserialize(value: String): Unit = { | ||
val hex3 = "^#([a-fA-F0-9]{6})$".r // Test if the value contains # and then 6 hexadecimal numbers | ||
val hex4 = "^#([a-fA-F0-9]{8})$".r // Test if the value contains # and then 8 hexadecimal numbers | ||
val int3 = "^(\\d+),(\\d+),(\\d+)$".r //Test if the value contains 3 ints | ||
val int4 = "^(\\d+),(\\d+),(\\d+),(\\d+)$".r //Test if the value contains 4 ints | ||
val float3 = "^(\\d+(?:\\.\\d+)?),(\\d+(?:\\.\\d+)?),(\\d+(?:\\.\\d+)?)$".r //Test if the value contains 3 floats | ||
val float4 = "^(\\d+(?:\\.\\d+)?),(\\d+(?:\\.\\d+)?),(\\d+(?:\\.\\d+)?),(\\d+(?:\\.\\d+)?)$".r //Test if the value contains 4 floats | ||
|
||
value match { | ||
case hex3(hex) => { | ||
set(new Color(Integer.valueOf(hex.substring(0, 2), 16), | ||
Integer.valueOf(hex.substring(2, 4), 16), | ||
Integer.valueOf(hex.substring(4, 6), 16))) | ||
} | ||
case hex4(hex) => | ||
set(new Color(Integer.valueOf(hex.substring(0, 2), 16), | ||
Integer.valueOf(hex.substring(2, 4), 16), | ||
Integer.valueOf(hex.substring(4, 6), 16), | ||
Integer.valueOf(hex.substring(6, 8), 16))) | ||
case int3(r, g, b) => set(new Color(r.toInt, g.toInt, b.toInt)) | ||
case int4(r, g, b, a) => set(new Color(r.toInt, g.toInt, b.toInt, a.toInt)) | ||
case float3(r, g, b) => set(new Color(r.toFloat, g.toFloat, b.toFloat)) | ||
case float4(r, g, b, a) => set(new Color(r.toFloat, g.toFloat, b.toFloat, a.toFloat)) | ||
case _ => throw new IllegalArgumentException("Could not convert String to color") | ||
} | ||
|
||
} | ||
|
||
override def set(value: Color): Unit = this.value = value | ||
|
||
} |
24 changes: 24 additions & 0 deletions
24
src/main/scala/org/codeoverflow/chatoverflow/requirement/parameter/DoubleParameterImpl.scala
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
package org.codeoverflow.chatoverflow.requirement.parameter | ||
|
||
import org.codeoverflow.chatoverflow.api.io.parameter.DoubleParameter | ||
import org.codeoverflow.chatoverflow.registry.Impl | ||
import java.lang.Double | ||
|
||
/** | ||
* A parameter holding a double value. | ||
*/ | ||
@Impl(impl = classOf[DoubleParameter]) | ||
class DoubleParameterImpl extends DoubleParameter { | ||
|
||
private var value: Double = null | ||
|
||
override def getType: Class[Double] = classOf[Double] | ||
|
||
override def serialize(): String = get().toString | ||
|
||
override def get(): Double = value | ||
|
||
override def deserialize(value: String): Unit = set(Double.valueOf(value)) | ||
|
||
override def set(value: Double): Unit = this.value = value | ||
} |
23 changes: 23 additions & 0 deletions
23
...main/scala/org/codeoverflow/chatoverflow/requirement/parameter/IntegerParameterImpl.scala
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
package org.codeoverflow.chatoverflow.requirement.parameter | ||
|
||
import org.codeoverflow.chatoverflow.api.io.parameter.IntegerParameter | ||
import org.codeoverflow.chatoverflow.registry.Impl | ||
|
||
/** | ||
* A parameter holding a int value. | ||
*/ | ||
@Impl(impl = classOf[IntegerParameter]) | ||
class IntegerParameterImpl extends IntegerParameter { | ||
private var value: Integer = null | ||
|
||
override def getType: Class[Integer] = classOf[Integer] | ||
|
||
override def serialize(): String = get().toString | ||
|
||
override def get(): Integer = value | ||
|
||
override def deserialize(value: String): Unit = set(Integer.valueOf(value)) | ||
|
||
override def set(value: Integer): Unit = this.value = value | ||
|
||
} |
23 changes: 23 additions & 0 deletions
23
src/main/scala/org/codeoverflow/chatoverflow/requirement/parameter/ListParameterImpl.scala
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
package org.codeoverflow.chatoverflow.requirement.parameter | ||
|
||
import collection.JavaConverters._ | ||
import org.codeoverflow.chatoverflow.api.io.parameter.ListParameter | ||
import org.codeoverflow.chatoverflow.registry.Impl | ||
|
||
/** | ||
* A parameter holding a List<String> value. | ||
*/ | ||
@Impl(impl = classOf[ListParameter]) | ||
class ListParameterImpl extends ListParameter { | ||
private var value: List[String] = null | ||
|
||
override def getType: Class[java.util.List[String]] = classOf[java.util.List[String]] | ||
|
||
override def serialize(): String = value.mkString(",") | ||
|
||
override def get(): java.util.List[String] = value.asJava | ||
|
||
override def deserialize(value: String): Unit = set(value.split(",").toSeq.asJava) | ||
|
||
override def set(value: java.util.List[String]): Unit = this.value = value.asScala.toList | ||
} |
31 changes: 31 additions & 0 deletions
31
src/main/scala/org/codeoverflow/chatoverflow/requirement/parameter/MapParameterImpl.scala
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
package org.codeoverflow.chatoverflow.requirement.parameter | ||
|
||
import org.codeoverflow.chatoverflow.registry.Impl | ||
import org.codeoverflow.chatoverflow.api.io.parameter.MapParameter | ||
|
||
import collection.JavaConverters._ | ||
|
||
/** | ||
* A parameter holding a Map<String, String> value. | ||
*/ | ||
@Impl(impl = classOf[MapParameter]) | ||
class MapParameterImpl extends MapParameter { | ||
private var value: Map[String, String] = null | ||
|
||
override def getType: Class[java.util.Map[String, String]] = classOf[java.util.Map[String, String]] | ||
|
||
override def serialize(): String = value.map({ case (key, value) => s"($key;$value)" }).mkString(",") | ||
|
||
override def get(): java.util.Map[String, String] = value.asJava | ||
|
||
override def deserialize(value: String): Unit = { | ||
val kvpair = "\\((.+);(.+)\\)".r | ||
val konly = "\\((.+);\\)".r | ||
this.value = value.split(",") | ||
.map({ case kvpair(k, v) => (k -> v); case konly(k) => (k -> ""); case _ => throw new IllegalArgumentException("Could not convert String to Map")}) | ||
.toMap | ||
} | ||
|
||
override def set(value: java.util.Map[String, String]): Unit = this.value = value.asScala.toMap | ||
|
||
} |
20 changes: 20 additions & 0 deletions
20
src/main/scala/org/codeoverflow/chatoverflow/requirement/parameter/UriParameterImpl.scala
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package org.codeoverflow.chatoverflow.requirement.parameter | ||
|
||
import org.codeoverflow.chatoverflow.api.io.parameter.UriParameter | ||
import org.codeoverflow.chatoverflow.registry.Impl | ||
import java.net.URI | ||
|
||
@Impl(impl = classOf[UriParameter]) | ||
class UriParameterImpl extends UriParameter { | ||
private var value: URI = null | ||
|
||
override def getType: Class[URI] = classOf[URI] | ||
|
||
override def serialize(): String = get().toString | ||
|
||
override def get(): URI = value | ||
|
||
override def deserialize(value: String): Unit = set(new URI(value)) | ||
|
||
override def set(value: URI): Unit = this.value = value | ||
} |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.