diff --git a/pom.xml b/pom.xml
index 265fad78a..e85a19eb9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
com.mysema.codegen
codegen
- 0.2.8-SNAPSHOT
+ 0.2.9
Codegen
Code generation and compilation for Java
diff --git a/src/main/java/com/mysema/codegen/model/ClassType.java b/src/main/java/com/mysema/codegen/model/ClassType.java
index e9d8a1e4e..614e7a598 100644
--- a/src/main/java/com/mysema/codegen/model/ClassType.java
+++ b/src/main/java/com/mysema/codegen/model/ClassType.java
@@ -145,11 +145,7 @@ public class ClassType implements Type {
@Override
public String getPackageName() {
- if (javaClass.getPackage() != null){
- return javaClass.getPackage().getName();
- }else{
- return "";
- }
+ return ClassUtils.getPackageName(javaClass);
}
@Override
diff --git a/src/main/java/com/mysema/codegen/support/ClassUtils.java b/src/main/java/com/mysema/codegen/support/ClassUtils.java
index 3093dfd45..a66160ddb 100644
--- a/src/main/java/com/mysema/codegen/support/ClassUtils.java
+++ b/src/main/java/com/mysema/codegen/support/ClassUtils.java
@@ -30,6 +30,16 @@ public final class ClassUtils {
}
}
+ public static String getPackageName(Class> cl){
+ if (cl.isArray()){
+ return getPackageName(cl.getComponentType());
+ }else if (cl.getPackage() != null){
+ return cl.getPackage().getName();
+ }else{
+ return "";
+ }
+ }
+
public static String getName(Class> cl, Set packages, Set classes) {
if (cl.isArray()) {
return getName(cl.getComponentType(), packages, classes) + "[]";
diff --git a/src/test/java/com/mysema/codegen/ScalaWriterTest.java b/src/test/java/com/mysema/codegen/ScalaWriterTest.java
index a351bbe93..bf8ca8e81 100644
--- a/src/test/java/com/mysema/codegen/ScalaWriterTest.java
+++ b/src/test/java/com/mysema/codegen/ScalaWriterTest.java
@@ -19,6 +19,7 @@ import com.mysema.codegen.model.ClassType;
import com.mysema.codegen.model.Parameter;
import com.mysema.codegen.model.SimpleType;
import com.mysema.codegen.model.Type;
+import com.mysema.codegen.model.TypeCategory;
import com.mysema.codegen.model.Types;
public class ScalaWriterTest {
@@ -85,11 +86,15 @@ public class ScalaWriterTest {
writer.beginPublicMethod(Types.VOID, "main", new Parameter("args",Types.STRING.asArrayType()));
writer.line("//");
writer.end();
+ writer.beginPublicMethod(Types.VOID, "main2", new Parameter("args",new ClassType(TypeCategory.ARRAY,String[].class)));
+ writer.line("//");
+ writer.end();
writer.end();
System.out.println(w);
assertTrue(w.toString().contains("var stringArray: Array[String];"));
assertTrue(w.toString().contains("def main(args: Array[String])"));
+ assertTrue(w.toString().contains("def main2(args: Array[String])"));
}
@Test
diff --git a/src/test/java/com/mysema/codegen/model/ClassTypeTest.java b/src/test/java/com/mysema/codegen/model/ClassTypeTest.java
index 844af1f92..9bd6c49f7 100644
--- a/src/test/java/com/mysema/codegen/model/ClassTypeTest.java
+++ b/src/test/java/com/mysema/codegen/model/ClassTypeTest.java
@@ -23,6 +23,12 @@ public class ClassTypeTest {
// assertEquals(stringType, stringType.asArrayType().getParameter(0));
// }
+ @Test
+ public void ArrayType(){
+ Type type = new ClassType(TypeCategory.ARRAY,String[].class);
+ assertEquals("java.lang", type.getPackageName());
+ }
+
@Test
public void As(){
assertEquals(TypeCategory.COMPARABLE, stringType.as(TypeCategory.COMPARABLE).getCategory());