From e9a8ef2cff7462b9e30a13f76095de9fafa69e11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Fri, 21 Aug 2009 14:03:00 +0000 Subject: [PATCH] added skip annotation handling --- .../src/main/java/com/mysema/query/apt/Processor.java | 9 +++++---- .../mysema/query/apt/QuerydslAnnotationProcessor.java | 6 ++++-- .../com/mysema/query/apt/jdo/JDOAnnotationProcessor.java | 3 ++- .../com/mysema/query/apt/jpa/JPAAnnotationProcessor.java | 3 ++- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/Processor.java b/querydsl-apt/src/main/java/com/mysema/query/apt/Processor.java index 733769fd0..cdae81485 100644 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/Processor.java +++ b/querydsl-apt/src/main/java/com/mysema/query/apt/Processor.java @@ -30,7 +30,6 @@ import javax.tools.Diagnostic.Kind; import org.apache.commons.lang.StringUtils; import com.mysema.commons.lang.Assert; -import com.mysema.query.annotations.Transient; import com.mysema.query.codegen.ClassModel; import com.mysema.query.codegen.ConstructorModel; import com.mysema.query.codegen.FieldModel; @@ -123,7 +122,7 @@ public class Processor { }; - private final Class entityAnn, superTypeAnn, embeddableAnn, dtoAnn; + private final Class entityAnn, superTypeAnn, embeddableAnn, dtoAnn, skipAnn; private final ProcessingEnvironment env; @@ -138,12 +137,14 @@ public class Processor { Class superTypeAnn, Class embeddableAnn, Class dtoAnn, + Class skipAnn, String namePrefix) { this.env = Assert.notNull(env); this.entityAnn = Assert.notNull(entityAnn); this.superTypeAnn = superTypeAnn; this.embeddableAnn = embeddableAnn; this.dtoAnn = dtoAnn; + this.skipAnn = skipAnn; this.namePrefix = Assert.notNull(namePrefix); } @@ -161,14 +162,14 @@ public class Processor { protected boolean isValidField(VariableElement field) { return useFields - && field.getAnnotation(Transient.class) == null + && field.getAnnotation(skipAnn) == null && !field.getModifiers().contains(Modifier.TRANSIENT) && !field.getModifiers().contains(Modifier.STATIC); } protected boolean isValidGetter(ExecutableElement getter){ return useGetters - && getter.getAnnotation(Transient.class) == null + && getter.getAnnotation(skipAnn) == null && !getter.getModifiers().contains(Modifier.STATIC); } diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/QuerydslAnnotationProcessor.java b/querydsl-apt/src/main/java/com/mysema/query/apt/QuerydslAnnotationProcessor.java index b94d526cf..15ae788cc 100644 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/QuerydslAnnotationProcessor.java +++ b/querydsl-apt/src/main/java/com/mysema/query/apt/QuerydslAnnotationProcessor.java @@ -16,9 +16,10 @@ import javax.lang.model.SourceVersion; import javax.lang.model.element.TypeElement; import javax.tools.Diagnostic; -import com.mysema.query.annotations.Projection; import com.mysema.query.annotations.Embeddable; import com.mysema.query.annotations.Entity; +import com.mysema.query.annotations.Projection; +import com.mysema.query.annotations.Transient; @SupportedAnnotationTypes("*") @@ -32,7 +33,8 @@ public class QuerydslAnnotationProcessor extends AbstractProcessor{ Class superType = null; Class embeddable = Embeddable.class; Class dtoAnnotation = Projection.class; - Processor p = new Processor(processingEnv, entity, superType, embeddable, dtoAnnotation, "Q"); + Class skipAnnotation = Transient.class; + Processor p = new Processor(processingEnv, entity, superType, embeddable, dtoAnnotation, skipAnnotation, "Q"); p.process(roundEnv); return true; } diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/jdo/JDOAnnotationProcessor.java b/querydsl-apt/src/main/java/com/mysema/query/apt/jdo/JDOAnnotationProcessor.java index 2af87a0ab..43bd5e09b 100644 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/jdo/JDOAnnotationProcessor.java +++ b/querydsl-apt/src/main/java/com/mysema/query/apt/jdo/JDOAnnotationProcessor.java @@ -31,7 +31,8 @@ public class JDOAnnotationProcessor extends AbstractProcessor{ Class superType = null; // ?!? Class embeddable = (Class)Class.forName("javax.jdo.annotations.EmbeddedOnly"); Class dtoAnnotation = Projection.class; - Processor p = new Processor(processingEnv, entity, superType, embeddable, dtoAnnotation, "Q"); + Class skipAnnotation = (Class)Class.forName("javax.jdo.annotations.NotPersistent"); + Processor p = new Processor(processingEnv, entity, superType, embeddable, dtoAnnotation, skipAnnotation, "Q"); p.skipGetters().process(roundEnv); return true; } catch (ClassNotFoundException e) { diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/jpa/JPAAnnotationProcessor.java b/querydsl-apt/src/main/java/com/mysema/query/apt/jpa/JPAAnnotationProcessor.java index d91a8a764..d60da1a17 100644 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/jpa/JPAAnnotationProcessor.java +++ b/querydsl-apt/src/main/java/com/mysema/query/apt/jpa/JPAAnnotationProcessor.java @@ -31,7 +31,8 @@ public class JPAAnnotationProcessor extends AbstractProcessor{ Class superType = (Class)Class.forName("javax.persistence.MappedSuperclass"); Class embeddable = (Class)Class.forName("javax.persistence.Embeddable"); Class dtoAnnotation = Projection.class; - Processor p = new Processor(processingEnv, entity, superType, embeddable, dtoAnnotation, "Q"); + Class skipAnnotation = (Class)Class.forName("javax.persistence.Transient"); + Processor p = new Processor(processingEnv, entity, superType, embeddable, dtoAnnotation, skipAnnotation, "Q"); p.process(roundEnv); return true; } catch (ClassNotFoundException e) {