fixed packageless class handling

updated version to 0.3.4
This commit is contained in:
Timo Westkämper 2011-03-31 07:18:58 +00:00
parent 10fbb3c87f
commit d2cc6fc4a1
3 changed files with 32 additions and 12 deletions

View File

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

View File

@ -1,7 +1,7 @@
/*
* Copyright (c) 2010 Mysema Ltd.
* All rights reserved.
*
*
*/
package com.mysema.codegen.support;
@ -16,11 +16,11 @@ import java.util.Set;
*
*/
public final class ClassUtils {
public static String getName(Class<?> cl){
return getName(cl, Collections.singleton("java.lang"), Collections.<String>emptySet());
}
public static String getFullName(Class<?> cl) {
if (cl.isArray()){
@ -29,7 +29,7 @@ public final class ClassUtils {
return cl.getName();
}
}
public static String getPackageName(Class<?> cl){
if (cl.isArray()){
return getPackageName(cl.getComponentType());
@ -39,24 +39,24 @@ public final class ClassUtils {
return "";
}
}
public static String getName(Class<?> cl, Set<String> packages, Set<String> classes) {
if (cl.isArray()) {
return getName(cl.getComponentType(), packages, classes) + "[]";
} else if (cl.getPackage() == null
|| packages.contains(cl.getPackage().getName())
} else if (cl.getPackage() == null
|| packages.contains(cl.getPackage().getName())
|| classes.contains(cl.getName())) {
if (cl.getPackage() != null){
String localName = cl.getName().substring(cl.getPackage().getName().length()+1);
return localName.replace('$', '.');
}else{
return cl.getSimpleName().replace('$', '.');
return cl.getName().replace('$', '.');
}
} else {
return cl.getName().replace('$', '.');
}
}
public static Class<?> normalize(Class<?> clazz){
if (List.class.isAssignableFrom(clazz)){
return List.class;
@ -64,10 +64,10 @@ public final class ClassUtils {
return Set.class;
}else if (Collection.class.isAssignableFrom(clazz)){
return Collection.class;
}else if (Map.class.isAssignableFrom(clazz)){
}else if (Map.class.isAssignableFrom(clazz)){
return Map.class;
}else{
return clazz;
return clazz;
}
}

View File

@ -0,0 +1,20 @@
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import com.mysema.codegen.support.ClassUtils;
public class NestedTest {
public static class Inner {
}
@Test
public void ClassUtils_getName(){
String name = ClassUtils.getName(NestedTest.Inner.class);
assertEquals("NestedTest.Inner", name);
}
}