added support for serializing array types properly

This commit is contained in:
Timo Westkämper 2010-09-11 15:13:05 +00:00
parent ceeacd9541
commit 08d6422de3
4 changed files with 39 additions and 1 deletions

View File

@ -106,7 +106,7 @@ public class ClassType implements Type {
@Override
public String getFullName() {
return javaClass.getName();
return ClassUtils.getFullName(javaClass);
}
@Override

View File

@ -21,6 +21,15 @@ public final class ClassUtils {
return getName(cl, Collections.singleton("java.lang"), Collections.<String>emptySet());
}
public static String getFullName(Class<?> cl) {
if (cl.isArray()){
return getFullName(cl.getComponentType()) + "[]";
}else{
return cl.getName();
}
}
public static String getName(Class<?> cl, Set<String> packages, Set<String> classes) {
if (cl.isArray()) {
return getName(cl.getComponentType(), packages, classes) + "[]";
@ -53,4 +62,5 @@ public final class ClassUtils {
}
private ClassUtils(){}
}

View File

@ -42,6 +42,15 @@ public class ClassTypeTest {
public void Primitive_Arrays(){
ClassType byteArray = new ClassType(byte[].class);
assertEquals("byte[]", byteArray.getRawName(Collections.singleton("java.lang"), Collections.<String>emptySet()));
assertEquals("byte[]", byteArray.getSimpleName());
assertEquals("byte[]", byteArray.getFullName());
}
@Test
public void Array(){
ClassType byteArray = new ClassType(Byte[].class);
assertEquals("Byte[]", byteArray.getRawName(Collections.singleton("java.lang"), Collections.<String>emptySet()));
assertEquals("Byte[]", byteArray.getSimpleName());
assertEquals("java.lang.Byte[]", byteArray.getFullName());
}
}

View File

@ -0,0 +1,19 @@
package com.mysema.codegen.model;
import static org.junit.Assert.assertEquals;
import java.util.Collections;
import org.junit.Test;
public class SimpleTypeTest {
@Test
public void PrimitiveArray(){
Type byteArray = new ClassType(byte[].class);
Type byteArray2 = new SimpleType(byteArray, byteArray.getParameters());
assertEquals("byte[]", byteArray.getRawName(Collections.singleton("java.lang"), Collections.<String>emptySet()));
assertEquals("byte[]", byteArray2.getRawName(Collections.singleton("java.lang"), Collections.<String>emptySet()));
}
}