fixed array type handling

This commit is contained in:
Timo Westkämper 2011-03-02 17:50:34 +00:00
parent 3124eca34b
commit 1402095954
3 changed files with 15 additions and 5 deletions

View File

@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.mysema.codegen</groupId>
<artifactId>codegen</artifactId>
<version>0.3.2-SNAPSHOT</version>
<version>0.3.3</version>
<name>Codegen</name>
<description>Code generation and compilation for Java</description>
<parent>

View File

@ -29,6 +29,8 @@ public class ClassType implements Type {
private final Class<?> javaClass;
private final String className;
private final List<Type> 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<Type> 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

View File

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