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));