From eeee5717a826f9aa6a63efb6d42d76c5b8fd668a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Tue, 10 Mar 2009 15:01:53 +0000 Subject: [PATCH] refactored querydsl-apt packages --- .../mysema/query/apt/general/DTOVisitor.java | 4 ++-- .../query/apt/general/EntityVisitor.java | 19 +++++++++++++++++-- .../query/apt/general/GeneralProcessor.java | 2 +- .../query/apt/{util => general}/TypeInfo.java | 5 +++-- .../query/apt/{ => model}/Constructor.java | 3 ++- .../mysema/query/apt/{ => model}/Field.java | 5 +++-- .../query/apt/{ => model}/Parameter.java | 5 +++-- .../mysema/query/apt/{ => model}/Type.java | 19 ++++++++++++++----- .../apt/general/GeneralProcessorTest.java | 8 ++++---- 9 files changed, 49 insertions(+), 21 deletions(-) rename querydsl-apt/src/main/java/com/mysema/query/apt/{util => general}/TypeInfo.java (95%) rename querydsl-apt/src/main/java/com/mysema/query/apt/{ => model}/Constructor.java (87%) rename querydsl-apt/src/main/java/com/mysema/query/apt/{ => model}/Field.java (92%) rename querydsl-apt/src/main/java/com/mysema/query/apt/{ => model}/Parameter.java (84%) rename querydsl-apt/src/main/java/com/mysema/query/apt/{ => model}/Type.java (86%) diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/general/DTOVisitor.java b/querydsl-apt/src/main/java/com/mysema/query/apt/general/DTOVisitor.java index 52a2091c7..32a962339 100644 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/general/DTOVisitor.java +++ b/querydsl-apt/src/main/java/com/mysema/query/apt/general/DTOVisitor.java @@ -8,8 +8,8 @@ package com.mysema.query.apt.general; import java.util.Set; import java.util.TreeSet; -import com.mysema.query.apt.Constructor; -import com.mysema.query.apt.Type; +import com.mysema.query.apt.model.Constructor; +import com.mysema.query.apt.model.Type; import com.sun.mirror.declaration.ClassDeclaration; import com.sun.mirror.declaration.ConstructorDeclaration; import com.sun.mirror.util.SimpleDeclarationVisitor; diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/general/EntityVisitor.java b/querydsl-apt/src/main/java/com/mysema/query/apt/general/EntityVisitor.java index 691b642a3..364465c59 100644 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/general/EntityVisitor.java +++ b/querydsl-apt/src/main/java/com/mysema/query/apt/general/EntityVisitor.java @@ -8,10 +8,12 @@ package com.mysema.query.apt.general; import java.util.HashMap; import java.util.Map; -import com.mysema.query.apt.Field; -import com.mysema.query.apt.Type; +import com.mysema.query.apt.model.Field; +import com.mysema.query.apt.model.Type; import com.sun.mirror.declaration.ClassDeclaration; import com.sun.mirror.declaration.FieldDeclaration; +import com.sun.mirror.declaration.InterfaceDeclaration; +import com.sun.mirror.declaration.MethodDeclaration; import com.sun.mirror.declaration.Modifier; import com.sun.mirror.util.SimpleDeclarationVisitor; @@ -31,6 +33,12 @@ public class EntityVisitor extends SimpleDeclarationVisitor { last = new Type(d); types.put(d.getQualifiedName(), last); } + + @Override + public void visitInterfaceDeclaration(InterfaceDeclaration d){ + last = new Type(d); + types.put(d.getQualifiedName(), last); + } @Override public void visitFieldDeclaration(FieldDeclaration d) { @@ -39,5 +47,12 @@ public class EntityVisitor extends SimpleDeclarationVisitor { last.addField(new Field(d)); } } + + @Override + public void visitMethodDeclaration(MethodDeclaration d) { + if (!d.getModifiers().contains(Modifier.STATIC)){ + // TODO + } + } } \ No newline at end of file diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/general/GeneralProcessor.java b/querydsl-apt/src/main/java/com/mysema/query/apt/general/GeneralProcessor.java index f289a7337..f1dfa9742 100644 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/general/GeneralProcessor.java +++ b/querydsl-apt/src/main/java/com/mysema/query/apt/general/GeneralProcessor.java @@ -16,7 +16,7 @@ import java.util.HashMap; import java.util.Map; import com.mysema.query.apt.FreeMarkerSerializer; -import com.mysema.query.apt.Type; +import com.mysema.query.apt.model.Type; import com.sun.mirror.apt.AnnotationProcessor; import com.sun.mirror.apt.AnnotationProcessorEnvironment; import com.sun.mirror.declaration.AnnotationTypeDeclaration; diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/util/TypeInfo.java b/querydsl-apt/src/main/java/com/mysema/query/apt/general/TypeInfo.java similarity index 95% rename from querydsl-apt/src/main/java/com/mysema/query/apt/util/TypeInfo.java rename to querydsl-apt/src/main/java/com/mysema/query/apt/general/TypeInfo.java index 56e636b7e..4f87a7332 100644 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/util/TypeInfo.java +++ b/querydsl-apt/src/main/java/com/mysema/query/apt/general/TypeInfo.java @@ -3,12 +3,13 @@ * All rights reserved. * */ -package com.mysema.query.apt.util; +package com.mysema.query.apt.general; import java.util.Iterator; import java.util.Locale; -import com.mysema.query.apt.Field; +import com.mysema.query.apt.model.Field; +import com.mysema.query.apt.model.Field.Type; import com.sun.mirror.type.*; import com.sun.mirror.util.SimpleTypeVisitor; diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/Constructor.java b/querydsl-apt/src/main/java/com/mysema/query/apt/model/Constructor.java similarity index 87% rename from querydsl-apt/src/main/java/com/mysema/query/apt/Constructor.java rename to querydsl-apt/src/main/java/com/mysema/query/apt/model/Constructor.java index 90a4b22f0..3133fde00 100644 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/Constructor.java +++ b/querydsl-apt/src/main/java/com/mysema/query/apt/model/Constructor.java @@ -3,7 +3,7 @@ * All rights reserved. * */ -package com.mysema.query.apt; +package com.mysema.query.apt.model; import java.util.ArrayList; import java.util.Collection; @@ -25,6 +25,7 @@ public class Constructor { } public Constructor(ConstructorDeclaration co) { + // TODO : remove Declaration dependency parameters = new ArrayList(co.getParameters().size()); for (ParameterDeclaration pa : co.getParameters()) { parameters.add(new Parameter(pa)); diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/Field.java b/querydsl-apt/src/main/java/com/mysema/query/apt/model/Field.java similarity index 92% rename from querydsl-apt/src/main/java/com/mysema/query/apt/Field.java rename to querydsl-apt/src/main/java/com/mysema/query/apt/model/Field.java index 732149aef..c79dd924b 100644 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/Field.java +++ b/querydsl-apt/src/main/java/com/mysema/query/apt/model/Field.java @@ -3,9 +3,9 @@ * All rights reserved. * */ -package com.mysema.query.apt; +package com.mysema.query.apt.model; -import com.mysema.query.apt.util.TypeInfo; +import com.mysema.query.apt.general.TypeInfo; import com.sun.mirror.declaration.FieldDeclaration; /** @@ -43,6 +43,7 @@ public class Field implements Comparable { * @param field */ public Field(FieldDeclaration field) { + // TODO : remove Declaration dependency TypeInfo typeInfo = new TypeInfo(field.getType()); this.name = javaSafe(field.getSimpleName()); this.realName = realName(name); diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/Parameter.java b/querydsl-apt/src/main/java/com/mysema/query/apt/model/Parameter.java similarity index 84% rename from querydsl-apt/src/main/java/com/mysema/query/apt/Parameter.java rename to querydsl-apt/src/main/java/com/mysema/query/apt/model/Parameter.java index 4a78ae96c..98ca41497 100644 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/Parameter.java +++ b/querydsl-apt/src/main/java/com/mysema/query/apt/model/Parameter.java @@ -3,9 +3,9 @@ * All rights reserved. * */ -package com.mysema.query.apt; +package com.mysema.query.apt.model; -import com.mysema.query.apt.util.TypeInfo; +import com.mysema.query.apt.general.TypeInfo; import com.sun.mirror.declaration.ParameterDeclaration; /** @@ -23,6 +23,7 @@ public class Parameter implements Comparable { } public Parameter(ParameterDeclaration pa) { + // TODO : remove Declaration dependency name = pa.getSimpleName(); typeName = new TypeInfo(pa.getType()).getFullName(); } diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/Type.java b/querydsl-apt/src/main/java/com/mysema/query/apt/model/Type.java similarity index 86% rename from querydsl-apt/src/main/java/com/mysema/query/apt/Type.java rename to querydsl-apt/src/main/java/com/mysema/query/apt/model/Type.java index cb89b25c1..aed0dfbd3 100644 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/Type.java +++ b/querydsl-apt/src/main/java/com/mysema/query/apt/model/Type.java @@ -3,14 +3,12 @@ * All rights reserved. * */ -package com.mysema.query.apt; +package com.mysema.query.apt.model; -import java.util.Collection; -import java.util.HashSet; -import java.util.Set; -import java.util.TreeSet; +import java.util.*; import com.sun.mirror.declaration.ClassDeclaration; +import com.sun.mirror.declaration.InterfaceDeclaration; /** * TypeDecl represents a query domain type. @@ -51,11 +49,22 @@ public class Type implements Comparable { String superType; public Type(ClassDeclaration d) { + // TODO : remove Declaration dependency this.simpleName = d.getSimpleName(); this.name = d.getQualifiedName(); this.packageName = d.getPackage().getQualifiedName(); this.superType = d.getSuperclass().getDeclaration().getQualifiedName(); } + + public Type(InterfaceDeclaration d){ + // TODO : remove Declaration dependency + this.simpleName = d.getSimpleName(); + this.name = d.getQualifiedName(); + this.packageName = d.getPackage().getQualifiedName(); + if (!d.getSuperinterfaces().isEmpty()){ + this.superType = d.getSuperinterfaces().iterator().next().getDeclaration().getQualifiedName(); + } + } public Type(String superType, String name, String simpleName) { this.superType = superType; diff --git a/querydsl-apt/src/test/java/com/mysema/query/apt/general/GeneralProcessorTest.java b/querydsl-apt/src/test/java/com/mysema/query/apt/general/GeneralProcessorTest.java index 81653efce..9a310e557 100644 --- a/querydsl-apt/src/test/java/com/mysema/query/apt/general/GeneralProcessorTest.java +++ b/querydsl-apt/src/test/java/com/mysema/query/apt/general/GeneralProcessorTest.java @@ -13,10 +13,10 @@ import java.util.Map; import org.junit.Test; -import com.mysema.query.apt.Constructor; -import com.mysema.query.apt.Field; -import com.mysema.query.apt.Parameter; -import com.mysema.query.apt.Type; +import com.mysema.query.apt.model.Constructor; +import com.mysema.query.apt.model.Field; +import com.mysema.query.apt.model.Parameter; +import com.mysema.query.apt.model.Type; /** * HibernateProcessorTest provides.