mirror of
https://github.com/querydsl/querydsl.git
synced 2026-07-03 21:07:49 +08:00
73 lines
2.0 KiB
Java
73 lines
2.0 KiB
Java
package com.mysema.query.codegen;
|
|
|
|
import static org.junit.Assert.assertEquals;
|
|
import static org.junit.Assert.assertNull;
|
|
|
|
import java.io.File;
|
|
import java.lang.reflect.Field;
|
|
|
|
import org.junit.Test;
|
|
|
|
import com.mysema.codegen.model.Type;
|
|
import com.mysema.codegen.model.TypeExtends;
|
|
import com.mysema.query.annotations.QueryEntity;
|
|
|
|
public class Inheritance2Test {
|
|
|
|
@QueryEntity
|
|
public abstract class Base<T extends Base<T>> {
|
|
@SuppressWarnings("unchecked")
|
|
Base2 base;
|
|
Base2<?,?> base2;
|
|
}
|
|
|
|
@QueryEntity
|
|
public abstract class Base2<T extends Base2<T,U>,U extends IFace> {
|
|
|
|
}
|
|
|
|
@QueryEntity
|
|
public abstract class BaseSub extends Base<BaseSub> {
|
|
|
|
}
|
|
|
|
@QueryEntity
|
|
public abstract class BaseSub2<T extends BaseSub2<T>> extends Base<T> {
|
|
|
|
}
|
|
|
|
@QueryEntity
|
|
public abstract class Base2Sub<T extends IFace> extends Base2<Base2Sub<T>,T> {
|
|
|
|
}
|
|
|
|
public interface IFace {
|
|
|
|
}
|
|
|
|
@Test
|
|
public void Base_base() throws SecurityException, NoSuchFieldException {
|
|
TypeFactory typeFactory = new TypeFactory();
|
|
Field field = Base.class.getDeclaredField("base");
|
|
Type type = typeFactory.get(field.getType(), field.getGenericType());
|
|
assertEquals(0, type.getParameters().size());
|
|
}
|
|
|
|
@Test
|
|
public void Base_base2() throws SecurityException, NoSuchFieldException {
|
|
TypeFactory typeFactory = new TypeFactory();
|
|
Field field = Base.class.getDeclaredField("base2");
|
|
Type type = typeFactory.get(field.getType(), field.getGenericType());
|
|
assertEquals(2, type.getParameters().size());
|
|
assertNull(((TypeExtends)type.getParameters().get(0)).getVarName());
|
|
assertNull(((TypeExtends)type.getParameters().get(1)).getVarName());
|
|
}
|
|
|
|
@Test
|
|
public void test() {
|
|
GenericExporter exporter = new GenericExporter();
|
|
exporter.setTargetFolder(new File("target/" + getClass().getSimpleName()));
|
|
exporter.export(getClass().getClasses());
|
|
}
|
|
|
|
} |