From 14020959544269984dda4ea2bba71e87e37a89ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Wed, 2 Mar 2011 17:50:34 +0000 Subject: [PATCH] fixed array type handling --- pom.xml | 2 +- src/main/java/com/mysema/codegen/model/ClassType.java | 9 ++++++--- .../java/com/mysema/codegen/model/ClassTypeTest.java | 9 ++++++++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 42cd98819..51e8b79a0 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.mysema.codegen codegen - 0.3.2-SNAPSHOT + 0.3.3 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 614e7a598..7f11c19e7 100644 --- a/src/main/java/com/mysema/codegen/model/ClassType.java +++ b/src/main/java/com/mysema/codegen/model/ClassType.java @@ -29,6 +29,8 @@ public class ClassType implements Type { private final Class javaClass; + private final String className; + private final List parameters; @Nullable @@ -50,6 +52,7 @@ public class ClassType implements Type { this.javaClass = javaClass; this.primitiveClass = primitiveClass; this.parameters = parameters; + this.className = ClassUtils.getFullName(javaClass); } public ClassType(TypeCategory category, Class javaClass, List parameters) { @@ -85,7 +88,7 @@ public class ClassType implements Type { return true; }else if (o instanceof Type){ Type t = (Type)o; - return t.getFullName().equals(javaClass.getName()) && t.getParameters().equals(parameters); + return t.getFullName().equals(className) && t.getParameters().equals(parameters); }else{ return false; } @@ -106,7 +109,7 @@ public class ClassType implements Type { @Override public String getFullName() { - return ClassUtils.getFullName(javaClass); + return className; } @Override @@ -170,7 +173,7 @@ public class ClassType implements Type { @Override public int hashCode(){ - return javaClass.getName().hashCode(); + return className.hashCode(); } @Override diff --git a/src/test/java/com/mysema/codegen/model/ClassTypeTest.java b/src/test/java/com/mysema/codegen/model/ClassTypeTest.java index 9bd6c49f7..9be5c5496 100644 --- a/src/test/java/com/mysema/codegen/model/ClassTypeTest.java +++ b/src/test/java/com/mysema/codegen/model/ClassTypeTest.java @@ -29,13 +29,20 @@ public class ClassTypeTest { assertEquals("java.lang", type.getPackageName()); } + @Test + public void ArrayType_Equals_SimpleType(){ + Type type = new ClassType(TypeCategory.ARRAY,String[].class); + Type type2 = new SimpleType("java.lang.String[]", "java.lang", "String[]"); + assertEquals(type, type2); + } + @Test public void As(){ assertEquals(TypeCategory.COMPARABLE, stringType.as(TypeCategory.COMPARABLE).getCategory()); } @Test - public void getParameters(){ + public void GetParameters(){ ClassType mapType = new ClassType(TypeCategory.MAP, Map.class, stringType, stringType); assertEquals(2, mapType.getParameters().size()); assertEquals(stringType, mapType.getParameters().get(0));