fixed array handling

updated version to 0.2.9
This commit is contained in:
Timo Westkämper 2010-09-22 10:30:03 +00:00
parent 549ca2fe00
commit 518ef2d45f
5 changed files with 23 additions and 6 deletions

View File

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

View File

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

View File

@ -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<String> packages, Set<String> classes) {
if (cl.isArray()) {
return getName(cl.getComponentType(), packages, classes) + "[]";

View File

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

View File

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