added set support

This commit is contained in:
Tony Tam 2013-09-09 17:51:48 -07:00
parent 5f61d20610
commit f766937ac7
2 changed files with 25 additions and 2 deletions

View File

@ -120,8 +120,10 @@ class BasicJavaGenerator extends BasicGenerator {
val declaredType = dt.indexOf("[") match { val declaredType = dt.indexOf("[") match {
case -1 => dt case -1 => dt
case n: Int => { case n: Int => {
if (dt.substring(0, n).toLowerCase == "array") if (dt.substring(0, n) == "Array")
"List" + dt.substring(n).replaceAll("\\[", "<").replaceAll("\\]", ">") "List" + dt.substring(n).replaceAll("\\[", "<").replaceAll("\\]", ">")
else if (dt.substring(0, n) == "Set")
"Set" + dt.substring(n).replaceAll("\\[", "<").replaceAll("\\]", ">")
else dt.replaceAll("\\[", "<").replaceAll("\\]", ">") else dt.replaceAll("\\[", "<").replaceAll("\\]", ">")
} }
} }
@ -146,6 +148,15 @@ class BasicJavaGenerator extends BasicGenerator {
} }
declaredType += "<" + toDeclaredType(inner) + ">" declaredType += "<" + toDeclaredType(inner) + ">"
} }
case "Set" => {
val inner = {
obj.items match {
case Some(items) => items.ref.getOrElse(items.`type`)
case _ => throw new Exception("no inner type defined")
}
}
declaredType += "<" + toDeclaredType(inner) + ">"
}
case _ => case _ =>
} }
(declaredType, defaultValue) (declaredType, defaultValue)

View File

@ -146,8 +146,10 @@ class BasicScalaGenerator extends BasicGenerator {
val declaredType = dt.indexOf("[") match { val declaredType = dt.indexOf("[") match {
case -1 => dt case -1 => dt
case n: Int => { case n: Int => {
if (dt.substring(0, n).toLowerCase == "array") if (dt.substring(0, n) == "Array")
"List" + dt.substring(n) "List" + dt.substring(n)
else if (dt.substring(0, n) == "Set")
"Set" + dt.substring(n)
else dt else dt
} }
} }
@ -176,6 +178,16 @@ class BasicScalaGenerator extends BasicGenerator {
val e = "List[%s]" format toDeclaredType(inner) val e = "List[%s]" format toDeclaredType(inner)
(e, toDefaultValue(inner, obj)) (e, toDefaultValue(inner, obj))
} }
case "Set" => {
val inner = {
obj.items match {
case Some(items) => items.ref.getOrElse(items.`type`)
case _ => throw new Exception("no inner type defined")
}
}
val e = "Set[%s]" format toDeclaredType(inner)
(e, toDefaultValue(inner, obj))
}
case e: String => (toDeclaredType(e), toDefaultValue(e, obj)) case e: String => (toDeclaredType(e), toDefaultValue(e, obj))
} }
} }