mirror of
https://github.com/querydsl/querydsl.git
synced 2026-06-30 21:08:30 +08:00
extended import signature
This commit is contained in:
parent
94f4b51ac7
commit
16d8fe0e1f
@ -18,13 +18,13 @@ import java.util.Set;
|
||||
public final class ClassUtils {
|
||||
|
||||
public static String getName(Class<?> cl){
|
||||
return getName(cl, Collections.singleton(Object.class.getPackage()), Collections.<Class<?>>emptySet());
|
||||
return getName(cl, Collections.singleton("java.lang"), Collections.<String>emptySet());
|
||||
}
|
||||
|
||||
public static String getName(Class<?> cl, Set<Package> packages, Set<Class<?>> classes) {
|
||||
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()) || classes.contains(cl)) {
|
||||
} else if (cl.getPackage() == null || packages.contains(cl.getPackage().getName()) || classes.contains(cl.getName())) {
|
||||
return cl.getSimpleName().replace('$', '.');
|
||||
} else {
|
||||
return cl.getName().replace('$', '.');
|
||||
@ -32,10 +32,10 @@ public final class ClassUtils {
|
||||
}
|
||||
|
||||
public static String getName(Type<?> cl){
|
||||
return getName(cl, Collections.singleton(Object.class.getPackage()), Collections.<Class<?>>emptySet());
|
||||
return getName(cl, Collections.singleton("java.lang"), Collections.<String>emptySet());
|
||||
}
|
||||
|
||||
public static String getName(Type<?> type, Set<Package> packages, Set<Class<?>> classes){
|
||||
public static String getName(Type<?> type, Set<String> packages, Set<String> classes){
|
||||
if (type.getParameters().isEmpty()){
|
||||
return getName(type.getJavaClass(), packages, classes);
|
||||
}else{
|
||||
|
||||
@ -51,7 +51,9 @@ public interface CodeWriter extends Appendable{
|
||||
|
||||
CodeWriter imports(Package... imports) throws IOException;
|
||||
|
||||
CodeWriter imports(Collection<?> imports) throws IOException;
|
||||
CodeWriter importClasses(String... classes) throws IOException;
|
||||
|
||||
CodeWriter importPackages(String... packages) throws IOException;
|
||||
|
||||
CodeWriter javadoc(String... lines) throws IOException;
|
||||
|
||||
|
||||
@ -65,9 +65,9 @@ public final class JavaWriter implements Appendable, CodeWriter{
|
||||
|
||||
private final Appendable appendable;
|
||||
|
||||
private final Set<Class<?>> importedClasses = new HashSet<Class<?>>();
|
||||
private final Set<String> importedClasses = new HashSet<String>();
|
||||
|
||||
private final Set<Package> importedPackages = new HashSet<Package>();
|
||||
private final Set<String> importedPackages = new HashSet<String>();
|
||||
|
||||
private String indent = "";
|
||||
|
||||
@ -78,7 +78,7 @@ public final class JavaWriter implements Appendable, CodeWriter{
|
||||
throw new IllegalArgumentException("appendable is null");
|
||||
}
|
||||
this.appendable = appendable;
|
||||
this.importedPackages.add(Object.class.getPackage());
|
||||
this.importedPackages.add("java.lang");
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -149,7 +149,7 @@ public final class JavaWriter implements Appendable, CodeWriter{
|
||||
}
|
||||
|
||||
private JavaWriter appendType(Class<?> type) throws IOException{
|
||||
if (importedClasses.contains(type) || importedPackages.contains(type.getPackage())){
|
||||
if (importedClasses.contains(type.getName()) || importedPackages.contains(type.getPackage().getName())){
|
||||
append(type.getSimpleName());
|
||||
}else{
|
||||
append(type.getName());
|
||||
@ -279,7 +279,7 @@ public final class JavaWriter implements Appendable, CodeWriter{
|
||||
@Override
|
||||
public JavaWriter imports(Class<?>... imports) throws IOException{
|
||||
for (Class<?> cl : imports){
|
||||
importedClasses.add(cl);
|
||||
importedClasses.add(cl.getName());
|
||||
line(IMPORT + cl.getName() + SEMICOLON);
|
||||
}
|
||||
nl();
|
||||
@ -287,25 +287,30 @@ public final class JavaWriter implements Appendable, CodeWriter{
|
||||
}
|
||||
|
||||
@Override
|
||||
public CodeWriter imports(Collection<?> imports) throws IOException {
|
||||
for (Object o : imports){
|
||||
if (o instanceof Class<?>){
|
||||
imports((Class<?>)o);
|
||||
}else if (o instanceof Package){
|
||||
imports((Package)o);
|
||||
}else{
|
||||
line(IMPORT + o + SEMICOLON);
|
||||
nl();
|
||||
}
|
||||
public JavaWriter imports(Package... imports) throws IOException {
|
||||
for (Package p : imports){
|
||||
importedPackages.add(p.getName());
|
||||
line(IMPORT + p.getName() + ".*;");
|
||||
}
|
||||
nl();
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JavaWriter importClasses(String... imports) throws IOException{
|
||||
for (String cl : imports){
|
||||
importedClasses.add(cl);
|
||||
line(IMPORT + cl + SEMICOLON);
|
||||
}
|
||||
nl();
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JavaWriter imports(Package... imports) throws IOException {
|
||||
for (Package p : imports){
|
||||
public JavaWriter importPackages(String... imports) throws IOException {
|
||||
for (String p : imports){
|
||||
importedPackages.add(p);
|
||||
line(IMPORT + p.getName() + ".*;");
|
||||
line(IMPORT + p + ".*;");
|
||||
}
|
||||
nl();
|
||||
return this;
|
||||
@ -336,7 +341,7 @@ public final class JavaWriter implements Appendable, CodeWriter{
|
||||
|
||||
@Override
|
||||
public JavaWriter packageDecl(String packageName) throws IOException{
|
||||
importedPackages.add(Package.getPackage(packageName));
|
||||
importedPackages.add(packageName);
|
||||
return line(PACKAGE + packageName + SEMICOLON).nl();
|
||||
}
|
||||
|
||||
|
||||
@ -216,7 +216,7 @@ public class JavaWriterTest {
|
||||
|
||||
@Test
|
||||
public void testImports2() throws IOException{
|
||||
writer.imports(Arrays.asList("java.lang.reflect","java.util"));
|
||||
writer.importPackages("java.lang.reflect","java.util");
|
||||
|
||||
match("/testImports2", w.toString());
|
||||
}
|
||||
|
||||
@ -1,3 +1,2 @@
|
||||
import java.lang.reflect;
|
||||
|
||||
import java.util;
|
||||
import java.lang.reflect.*;
|
||||
import java.util.*;
|
||||
Loading…
Reference in New Issue
Block a user