diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/AbstractQuerydslProcessor.java b/querydsl-apt/src/main/java/com/mysema/query/apt/AbstractQuerydslProcessor.java index 022adc17d..fb1f4eae7 100644 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/AbstractQuerydslProcessor.java +++ b/querydsl-apt/src/main/java/com/mysema/query/apt/AbstractQuerydslProcessor.java @@ -558,7 +558,7 @@ public abstract class AbstractQuerydslProcessor extends AbstractProcessor { @Override public SourceVersion getSupportedSourceVersion() { - return SourceVersion.latest(); + return SourceVersion.latestSupported(); } private void serialize(Serializer serializer, Collection models) { diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/ExtendedTypeFactory.java b/querydsl-apt/src/main/java/com/mysema/query/apt/ExtendedTypeFactory.java index 689ca6f0e..901017e54 100644 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/ExtendedTypeFactory.java +++ b/querydsl-apt/src/main/java/com/mysema/query/apt/ExtendedTypeFactory.java @@ -13,48 +13,19 @@ */ package com.mysema.query.apt; -import java.lang.annotation.Annotation; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; - import javax.annotation.Nullable; import javax.annotation.processing.ProcessingEnvironment; import javax.lang.model.element.ElementKind; import javax.lang.model.element.Modifier; import javax.lang.model.element.TypeElement; -import javax.lang.model.type.ArrayType; -import javax.lang.model.type.DeclaredType; -import javax.lang.model.type.ErrorType; -import javax.lang.model.type.ExecutableType; -import javax.lang.model.type.NoType; -import javax.lang.model.type.NullType; -import javax.lang.model.type.PrimitiveType; -import javax.lang.model.type.TypeKind; -import javax.lang.model.type.TypeMirror; -import javax.lang.model.type.TypeVariable; -import javax.lang.model.type.TypeVisitor; -import javax.lang.model.type.WildcardType; -import javax.lang.model.util.AbstractTypeVisitor6; +import javax.lang.model.type.*; +import javax.lang.model.util.SimpleTypeVisitor6; +import java.lang.annotation.Annotation; +import java.util.*; -import com.mysema.codegen.model.SimpleType; -import com.mysema.codegen.model.Type; -import com.mysema.codegen.model.TypeCategory; -import com.mysema.codegen.model.TypeExtends; -import com.mysema.codegen.model.TypeSuper; -import com.mysema.codegen.model.Types; +import com.mysema.codegen.model.*; import com.mysema.query.annotations.QueryExclude; -import com.mysema.query.codegen.EntityType; -import com.mysema.query.codegen.Property; -import com.mysema.query.codegen.QueryTypeFactory; -import com.mysema.query.codegen.Supertype; -import com.mysema.query.codegen.TypeMappings; +import com.mysema.query.codegen.*; /** * ExtendedTypeFactory is a factory for APT inspection based Type creation @@ -82,7 +53,7 @@ public final class ExtendedTypeFactory { private boolean doubleIndexEntities = true; - private final TypeVisitor visitor = new AbstractTypeVisitor6() { + private final TypeVisitor visitor = new SimpleTypeVisitor6() { @Override public Type visitPrimitive(PrimitiveType primitiveType, Boolean p) { @@ -196,7 +167,9 @@ public final class ExtendedTypeFactory { // TODO : return TypeMirror instead ?!? - private final TypeVisitor, Boolean> keyBuilder = new AbstractTypeVisitor6, Boolean>() { + private final TypeVisitor, Boolean> keyBuilder = new SimpleTypeVisitor6, Boolean>() { + + private final List defaultValue = Collections.singletonList("Object"); private List visitBase(TypeMirror t) { List rv = new ArrayList(); @@ -215,7 +188,7 @@ public final class ExtendedTypeFactory { @Override public List visitNull(NullType t, Boolean p) { - return Collections.singletonList("Object"); + return defaultValue; } @Override @@ -274,7 +247,11 @@ public final class ExtendedTypeFactory { @Override public List visitNoType(NoType t, Boolean p) { - return Collections.singletonList("Object"); + return defaultValue; + } + + public List visitUnknown(TypeMirror t, Boolean p) { + return visitBase(t); } }; diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/TypeExtractor.java b/querydsl-apt/src/main/java/com/mysema/query/apt/TypeExtractor.java index 6a36a5d3f..66fc2c384 100644 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/TypeExtractor.java +++ b/querydsl-apt/src/main/java/com/mysema/query/apt/TypeExtractor.java @@ -14,16 +14,8 @@ package com.mysema.query.apt; import javax.lang.model.element.TypeElement; -import javax.lang.model.type.ArrayType; -import javax.lang.model.type.DeclaredType; -import javax.lang.model.type.ErrorType; -import javax.lang.model.type.ExecutableType; -import javax.lang.model.type.NoType; -import javax.lang.model.type.NullType; -import javax.lang.model.type.PrimitiveType; -import javax.lang.model.type.TypeVariable; -import javax.lang.model.type.WildcardType; -import javax.lang.model.util.AbstractTypeVisitor6; +import javax.lang.model.type.*; +import javax.lang.model.util.SimpleTypeVisitor6; /** * TypeExtractor is a visitor implementation which a concrete type given a general {@link TypeElement} @@ -31,7 +23,7 @@ import javax.lang.model.util.AbstractTypeVisitor6; * @author tiwe * */ -public class TypeExtractor extends AbstractTypeVisitor6 { +public class TypeExtractor extends SimpleTypeVisitor6 { private final boolean skipEnum; @@ -119,6 +111,11 @@ public class TypeExtractor extends AbstractTypeVisitor6 { public TypeElement visitNoType(NoType t, Void p) { return null; } + + @Override + public TypeElement visitUnknown(TypeMirror t, Void p) { + return null; + } }