mirror of
https://github.com/querydsl/querydsl.git
synced 2026-06-27 21:01:15 +08:00
#820371 : improved handling of parametrized types
This commit is contained in:
parent
e5550a55ff
commit
9300f59f7e
@ -7,6 +7,7 @@ package com.mysema.query.apt;
|
||||
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
@ -30,6 +31,7 @@ import javax.lang.model.type.TypeMirror;
|
||||
import javax.lang.model.type.TypeVariable;
|
||||
import javax.lang.model.type.WildcardType;
|
||||
|
||||
import com.mysema.codegen.model.ClassType;
|
||||
import com.mysema.codegen.model.SimpleType;
|
||||
import com.mysema.codegen.model.Type;
|
||||
import com.mysema.codegen.model.TypeCategory;
|
||||
@ -89,6 +91,8 @@ public final class ExtendedTypeFactory {
|
||||
this.comparableType = env.getElementUtils().getTypeElement(Comparable.class.getName());
|
||||
this.typeMappings = typeMappings;
|
||||
this.queryTypeFactory = queryTypeFactory;
|
||||
|
||||
// typeCache.put(Arrays.asList(Comparable.class.getName(), "?"), new ClassType(Comparable.class, (Type)null));
|
||||
}
|
||||
|
||||
private void appendToKey(List<String> key, DeclaredType t, boolean deep) {
|
||||
@ -204,7 +208,12 @@ public final class ExtendedTypeFactory {
|
||||
typeElement = (TypeElement)env.getTypeUtils().asElement(type);
|
||||
}
|
||||
|
||||
Type type = createType(typeElement, typeCategory, declaredType.getTypeArguments(), deep);
|
||||
Type type;
|
||||
if (typeElement.asType() instanceof DeclaredType && declaredType.getTypeArguments().isEmpty()) {
|
||||
type = createType(typeElement, typeCategory, ((DeclaredType)typeElement.asType()).getTypeArguments(), deep);
|
||||
} else {
|
||||
type = createType(typeElement, typeCategory, declaredType.getTypeArguments(), deep);
|
||||
}
|
||||
|
||||
// entity type
|
||||
for (Class<? extends Annotation> entityAnn : entityAnnotations){
|
||||
|
||||
@ -65,6 +65,12 @@ public class QuerydslAnnotationProcessorTest extends AbstractProcessorTest{
|
||||
process(QuerydslAnnotationProcessor.class, Collections.singletonList(path),"genericSignature");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void ProcessAbstractProperties2Test() throws IOException {
|
||||
String path = new File("src/test/java/com/mysema/query/domain/AbstractProperties2Test.java").getPath();
|
||||
process(QuerydslAnnotationProcessor.class, Collections.singletonList(path),"abstractProperties");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void QuerydslAnnotationProcessor() throws IOException {
|
||||
process(QuerydslAnnotationProcessor.class, CLASSES, "querydsl");
|
||||
|
||||
Loading…
Reference in New Issue
Block a user