diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/DefaultConfiguration.java b/querydsl-apt/src/main/java/com/mysema/query/apt/DefaultConfiguration.java index e58743d93..afffcf604 100644 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/DefaultConfiguration.java +++ b/querydsl-apt/src/main/java/com/mysema/query/apt/DefaultConfiguration.java @@ -7,7 +7,6 @@ package com.mysema.query.apt; import java.lang.annotation.Annotation; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -52,18 +51,20 @@ public class DefaultConfiguration implements Configuration { private static final String QUERYDSL_ENTITY_ACCESSORS = "querydsl.entityAccessors"; private static final String DEFAULT_OVERWRITE = "defaultOverwrite"; + + private final Collection keywords; private final TypeMappings typeMappings = new TypeMappings(); private final SerializerConfig defaultSerializerConfig; - private final Serializer dtoSerializer = new ProjectionSerializer(typeMappings); + private final Serializer dtoSerializer; - private final Serializer embeddableSerializer = new EmbeddableSerializer(typeMappings, getKeywords()); + private final Serializer embeddableSerializer; - private final Serializer entitySerializer = new EntitySerializer(typeMappings,getKeywords()); + private final Serializer entitySerializer; - private final Serializer supertypeSerializer = new SupertypeSerializer(typeMappings,getKeywords()); + private final Serializer supertypeSerializer; private String namePrefix = "Q"; @@ -81,18 +82,24 @@ public class DefaultConfiguration implements Configuration { public DefaultConfiguration( RoundEnvironment roundEnv, Map options, + Collection keywords, @Nullable Class entitiesAnn, Class entityAnn, @Nullable Class superTypeAnn, @Nullable Class embeddableAnn, @Nullable Class embeddedAnn, @Nullable Class skipAnn) { + this.keywords = keywords; + this.dtoSerializer = new ProjectionSerializer(typeMappings); + this.embeddableSerializer = new EmbeddableSerializer(typeMappings, keywords); + this.entitySerializer = new EntitySerializer(typeMappings, keywords); + this.supertypeSerializer = new SupertypeSerializer(typeMappings, keywords); this.entitiesAnn = entitiesAnn; this.entityAnn = Assert.notNull(entityAnn,"entityAnn"); this.superTypeAnn = superTypeAnn; this.embeddableAnn = embeddableAnn; this.embeddedAnn = embeddedAnn; - this.skipAnn = skipAnn; + this.skipAnn = skipAnn; for (Element element : roundEnv.getElementsAnnotatedWith(Config.class)){ Config querydslConfig = element.getAnnotation(Config.class); SerializerConfig config = SimpleSerializerConfig.getConfig(querydslConfig); @@ -297,7 +304,7 @@ public class DefaultConfiguration implements Configuration { @Override public Collection getKeywords(){ - return Collections.emptyList(); + return keywords; } } 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 f008cda42..de1fdce39 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 @@ -6,6 +6,7 @@ package com.mysema.query.apt; import java.lang.annotation.Annotation; +import java.util.Collections; import java.util.Set; import javax.annotation.processing.AbstractProcessor; @@ -46,7 +47,7 @@ public class QuerydslAnnotationProcessor extends AbstractProcessor{ embedded = QueryEmbedded.class; skip = QueryTransient.class; - DefaultConfiguration configuration = new DefaultConfiguration(roundEnv, processingEnv.getOptions(), entities, entity, superType, embeddable, embedded, skip); + DefaultConfiguration configuration = new DefaultConfiguration(roundEnv, processingEnv.getOptions(), Collections.emptySet(), entities, entity, superType, embeddable, embedded, skip); Processor processor = new Processor(processingEnv, roundEnv, configuration); processor.process(); 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 acc638bcb..2abd20c31 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 @@ -6,6 +6,8 @@ package com.mysema.query.apt.jdo; import java.lang.annotation.Annotation; +import java.util.Arrays; +import java.util.HashSet; import java.util.Set; import javax.annotation.processing.AbstractProcessor; @@ -29,6 +31,21 @@ import com.mysema.query.apt.Processor; @SupportedAnnotationTypes("*") @SupportedSourceVersion(SourceVersion.RELEASE_6) public class JDOAnnotationProcessor extends AbstractProcessor{ + + private static final Set KEYWORDS = new HashSet(Arrays.asList( + "AS","ASC", + "ASCENDING","AVG", + "BY","COUNT", + "DESC","DESCENDING", + "DISTINCT","EXCLUDE", + "FROM","GROUP", + "HAVING","INTO", + "MAX","MIN", + "ORDER","PARAMETERS", + "RANGE","SELECT", + "SUBCLASSES","SUM", + "UNIQUE","VARIABLES", + "WHERE")); private Class entity, embeddable, skip; @@ -41,7 +58,8 @@ public class JDOAnnotationProcessor extends AbstractProcessor{ embeddable = (Class)Class.forName("javax.jdo.annotations.EmbeddedOnly"); skip = (Class)Class.forName("javax.jdo.annotations.NotPersistent"); - DefaultConfiguration configuration = new DefaultConfiguration(roundEnv, processingEnv.getOptions(), null, entity, null, embeddable, null, skip); + DefaultConfiguration configuration = new DefaultConfiguration( + roundEnv, processingEnv.getOptions(), KEYWORDS, null, entity, null, embeddable, null, skip); configuration.setUseGetters(false); Processor processor = new Processor(processingEnv, roundEnv, configuration); processor.process(); @@ -52,8 +70,4 @@ public class JDOAnnotationProcessor extends AbstractProcessor{ } } - protected DefaultConfiguration createConfiguration(RoundEnvironment roundEnv) throws ClassNotFoundException { - return new JDOConfiguration(roundEnv, processingEnv.getOptions(), entity, null, embeddable, skip); - } - } diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/jdo/JDOConfiguration.java b/querydsl-apt/src/main/java/com/mysema/query/apt/jdo/JDOConfiguration.java deleted file mode 100644 index f09ccafb5..000000000 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/jdo/JDOConfiguration.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.mysema.query.apt.jdo; - -import java.lang.annotation.Annotation; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; -import java.util.Map; - -import javax.annotation.Nullable; -import javax.annotation.processing.RoundEnvironment; - -import com.mysema.query.apt.DefaultConfiguration; - -/** - * Configuration for {@link JDOAnnotationProcessor} - * - * @author tiwe - * @see JDOAnnotationProcessor - * - */ -public class JDOConfiguration extends DefaultConfiguration{ - - private static final List keywords = Arrays.asList( - "AS","ASC", - "ASCENDING","AVG", - "BY","COUNT", - "DESC","DESCENDING", - "DISTINCT","EXCLUDE", - "FROM","GROUP", - "HAVING","INTO", - "MAX","MIN", - "ORDER","PARAMETERS", - "RANGE","SELECT", - "SUBCLASSES","SUM", - "UNIQUE","VARIABLES", - "WHERE"); - - public JDOConfiguration(RoundEnvironment roundEnv,Map options, - Class entityAnn, - @Nullable Class superTypeAnn, - Class embeddableAnn, - Class skipAnn) throws ClassNotFoundException { - super(roundEnv, options, null, entityAnn, superTypeAnn, embeddableAnn, null, skipAnn); - } - - @Override - public Collection getKeywords(){ - return keywords; - } - -} diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/jpa/JPAConfiguration.java b/querydsl-apt/src/main/java/com/mysema/query/apt/jpa/JPAConfiguration.java index 762ad9f22..9f30c24ac 100644 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/jpa/JPAConfiguration.java +++ b/querydsl-apt/src/main/java/com/mysema/query/apt/jpa/JPAConfiguration.java @@ -9,6 +9,7 @@ import java.lang.annotation.Annotation; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.HashSet; import java.util.List; import java.util.Map; @@ -29,7 +30,7 @@ import com.mysema.query.apt.VisitorConfig; */ public class JPAConfiguration extends DefaultConfiguration { - private static final List keywords = Arrays.asList( + private static final Collection KEYWORDS = new HashSet(Arrays.asList( "ABS","ALL","AND","ANY","AS","ASC","AVG","BETWEEN", "BIT_LENGTH[51]","BOTH","BY","CASE","CHAR_LENGTH", "CHARACTER_LENGTH","CLASS", @@ -44,7 +45,7 @@ public class JPAConfiguration extends DefaultConfiguration { "ORDER","OUTER","POSITION","SELECT","SET","SIZE","SOME", "SQRT","SUBSTRING","SUM","THEN", "TRAILING","TRIM","TRUE","TYPE","UNKNOWN","UPDATE","UPPER", - "VALUE","WHEN","WHERE"); + "VALUE","WHEN","WHERE")); private List> annotations; @@ -53,7 +54,7 @@ public class JPAConfiguration extends DefaultConfiguration { Class superTypeAnn, Class embeddableAnn, Class skipAnn) throws ClassNotFoundException { - super(roundEnv, options, null, entityAnn, superTypeAnn, embeddableAnn, null, skipAnn); + super(roundEnv, options, KEYWORDS, null, entityAnn, superTypeAnn, embeddableAnn, null, skipAnn); this.annotations = getAnnotations(); } @@ -108,9 +109,4 @@ public class JPAConfiguration extends DefaultConfiguration { return false; } - @Override - public Collection getKeywords(){ - return keywords; - } - } diff --git a/querydsl-mongodb/src/main/java/com/mysema/query/mongodb/MongodbAnnotationProcessor.java b/querydsl-mongodb/src/main/java/com/mysema/query/mongodb/MongodbAnnotationProcessor.java index ad3122bd9..e58c96191 100644 --- a/querydsl-mongodb/src/main/java/com/mysema/query/mongodb/MongodbAnnotationProcessor.java +++ b/querydsl-mongodb/src/main/java/com/mysema/query/mongodb/MongodbAnnotationProcessor.java @@ -6,6 +6,7 @@ package com.mysema.query.mongodb; import java.lang.annotation.Annotation; +import java.util.Collections; import java.util.Set; import javax.annotation.processing.AbstractProcessor; @@ -37,7 +38,9 @@ public class MongodbAnnotationProcessor extends AbstractProcessor{ embedded = Embedded.class; skip = Transient.class; - DefaultConfiguration configuration = new DefaultConfiguration(roundEnv, processingEnv.getOptions(), entities, entity, null, null, embedded, skip); + DefaultConfiguration configuration = new DefaultConfiguration( + roundEnv, processingEnv.getOptions(), Collections.emptySet(), + entities, entity, null, null, embedded, skip); Processor processor = new Processor(processingEnv, roundEnv, configuration); processor.process();