Skip to content
This repository was archived by the owner on Aug 18, 2020. It is now read-only.

Commit b93b859

Browse files
committed
Implemented changes from @justgerd
1 parent 308de78 commit b93b859

File tree

2 files changed

+10
-53
lines changed

2 files changed

+10
-53
lines changed

src/main/scala/org/codeoverflow/chatoverflow/requirement/parameter/ListParameterImpl.scala

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
package org.codeoverflow.chatoverflow.requirement.parameter
22

3-
import java.util.Collections
43
import java.util.List
54

65
import collection.JavaConverters._
76
import org.codeoverflow.chatoverflow.api.io.parameter.ListParameter
87
import org.codeoverflow.chatoverflow.registry.Impl
98

10-
import scala.collection.mutable.ListBuffer
119

1210
/**
1311
* A parameter holding a List<String> value.
@@ -19,30 +17,13 @@ class ListParameterImpl extends ListParameter {
1917
override def getType: Class[List[String]] = classOf[List[String]]
2018

2119
override def serialize(): String = {
22-
var out = ""
23-
for (part <- value.toArray()) {
24-
if (out == "") {
25-
out = out + part
26-
} else {
27-
out = out + "," + part
28-
}
29-
}
30-
out
20+
value.asScala.mkString(",")
3121
}
3222

3323
override def get(): List[String] = value
3424

3525
override def deserialize(value: String): Unit = {
36-
var splits = value.split(",");
37-
if (splits.length == 1) {
38-
set(Collections.singletonList[String](splits(0)))
39-
} else {
40-
var list: ListBuffer[String] = ListBuffer[String]()
41-
for (part <- splits) {
42-
list += part
43-
}
44-
set(mutableSeqAsJavaList[String](list))
45-
}
26+
set(value.split(",").toSeq.asJava)
4627
}
4728

4829
override def set(value: List[String]): Unit = this.value = value

src/main/scala/org/codeoverflow/chatoverflow/requirement/parameter/MapParameterImpl.scala

Lines changed: 8 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,32 @@
11
package org.codeoverflow.chatoverflow.requirement.parameter
22

3-
import java.util.{Collections, List}
4-
53
import org.codeoverflow.chatoverflow.registry.Impl
64
import org.codeoverflow.chatoverflow.api.io.parameter.MapParameter
75

86
import collection.JavaConverters._
97
import java.util.Map
8+
109
/**
1110
* A parameter holding a Map<String, String> value.
1211
*/
1312
@Impl(impl = classOf[MapParameter])
14-
class MapParameterImpl extends MapParameter{
13+
class MapParameterImpl extends MapParameter {
1514
private var value: Map[String, String] = null
1615

1716
override def getType: Class[Map[String, String]] = classOf[Map[String, String]]
1817

1918
override def serialize(): String = {
20-
var out = ""
21-
value.keySet().forEach(key => {
22-
var valueSet = value.get(key)
23-
if(out == ""){
24-
out = out + "("+key+";"+valueSet+")"
25-
}else{
26-
out = out + ",("+key+";"+valueSet+")"
27-
}
28-
})
29-
out
19+
value.asScala.map({ case (key, value) => s"($key;$value)" }).mkString(",")
3020
}
3121

3222
override def get(): Map[String, String] = value
3323

3424
override def deserialize(value: String): Unit = {
35-
var splits = value.split(",");
36-
if (splits.length == 1) {
37-
var obj = splits(0)
38-
obj = obj.replaceAll("\\(" ,"").replaceAll("\\)","").trim
39-
splits = obj.split(";")
40-
if(splits.length == 2){
41-
set(Collections.singletonMap[String, String](splits(0), splits(1)))
42-
}
43-
} else {
44-
var map = scala.collection.mutable.Map[String, String]()
45-
for (part <- splits) {
46-
var obj: String = part.replaceAll("\\(" ,"").replaceAll("\\)","").trim
47-
var parts = obj.split(";")
48-
if(parts.length == 2){
49-
map += (parts(0) -> parts(1))
50-
}
51-
}
52-
if(map.nonEmpty) set(mutableMapAsJavaMap[String, String](map))
53-
}
25+
val kvpair = "\\((.+);(.+)\\)".r
26+
val konly = "\\((.+);\\)".r
27+
set(value.split(",")
28+
.map({ case kvpair(k, v) => (k -> v); case konly(k) => (k -> ""); case _ => ("" -> "") })
29+
.toMap.asJava)
5430
}
5531

5632
override def set(value: Map[String, String]): Unit = this.value = value

0 commit comments

Comments
 (0)