From 518ef2d45f49d087d3559a8f936752afc5358ba7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Wed, 22 Sep 2010 10:30:03 +0000 Subject: [PATCH] fixed array handling updated version to 0.2.9 --- pom.xml | 2 +- src/main/java/com/mysema/codegen/model/ClassType.java | 6 +----- .../java/com/mysema/codegen/support/ClassUtils.java | 10 ++++++++++ src/test/java/com/mysema/codegen/ScalaWriterTest.java | 5 +++++ .../java/com/mysema/codegen/model/ClassTypeTest.java | 6 ++++++ 5 files changed, 23 insertions(+), 6 deletions(-) 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());