private Type createType(Class<?> clazz) { Type type = classToType.get(clazz); if (type == null) { if (configuration.isMapped(clazz) && !clazz.isEnum()) { type = createEntityType(clazz); } else { type = typeFactory.get(clazz); } classToType.put(clazz, type); } return type; }
@Test public void Extends() throws SecurityException, NoSuchFieldException{ Field field = getClass().getDeclaredField("field4"); Type type = factory.get(field.getType(), field.getGenericType()); assertEquals(1, type.getParameters().size()); // assertEquals(Types.OBJECT, type.getParameters().get(0)); }
@Test public void Generics_Object() throws SecurityException, NoSuchFieldException{ Field field = getClass().getDeclaredField("field2"); Type type = factory.get(field.getType(), field.getGenericType()); assertEquals(1, type.getParameters().size()); assertEquals(Types.OBJECT, type.getParameters().get(0)); }
@Test public void NumberType() { for (Class<?> cl : Arrays.<Class<?>>asList(Byte.class, Integer.class)) { assertEquals("wrong type for " + cl.getName(), TypeCategory.NUMERIC, factory.get(cl).getCategory()); } }
@Test public void SimpleType() { for (Class<?> cl : Arrays.<Class<?>>asList(Blob.class, Clob.class, Locale.class, Class.class, Serializable.class)) { assertEquals("wrong type for " + cl.getName(), TypeCategory.SIMPLE, factory.get(cl).getCategory()); } }
@Test public void Generics_WildCard() throws SecurityException, NoSuchFieldException{ Field field = getClass().getDeclaredField("field"); Type type = factory.get(field.getType(), field.getGenericType()); assertEquals(1, type.getParameters().size()); assertEquals(TypeExtends.class, type.getParameters().get(0).getClass()); // assertNull(type.getParameters().get(0)); }
@Test public void InnerClass_Field() throws SecurityException, NoSuchFieldException{ Field field = Entity.class.getDeclaredField("field"); Type type = factory.get(field.getType(), field.getGenericType()); assertEquals(1, type.getParameters().size()); System.out.println(type.getParameters().get(0)); assertEquals(Types.OBJECT, type.getParameters().get(0)); }
@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 AbstractEntity_Code() throws SecurityException, NoSuchFieldException { Field field = EmbeddedTest.AbstractEntity.class.getDeclaredField("code"); Type type = factory.get(field.getType(), field.getGenericType()); assertTrue(type instanceof TypeExtends); assertEquals("C", ((TypeExtends)type).getVarName()); }
@Test public void Collection_Of_Collection() throws SecurityException, NoSuchFieldException { Field field = Examples.GenericRelations.class.getDeclaredField("col3"); Type type = factory.get(field.getType(), field.getGenericType()); assertEquals(1, type.getParameters().size()); Type valueType = type.getParameters().get(0); assertEquals(TypeExtends.class, valueType.getParameters().get(0).getClass()); }
@Test public void SubEntity() { Type type = factory.get(Examples.SubEntity.class); assertEquals(0, type.getParameters().size()); }
@Test public void SimpleTypes_classList5() throws SecurityException, NoSuchFieldException { Field field = Examples.SimpleTypes.class.getDeclaredField("classList5"); Type type = factory.get(field.getType(), field.getGenericType()); assertEquals(TypeCategory.LIST, type.getCategory()); Type parameter = type.getParameters().get(0); assertEquals(ClassType.class, parameter.getClass()); assertEquals(TypeExtends.class, parameter.getParameters().get(0).getClass()); }
@Test public void EnumType() { assertEquals(TypeCategory.ENUM, factory.get(EnumExample.class).getCategory()); }
@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 Generics_Wildcard() throws SecurityException, NoSuchFieldException { Field field = DefaultQueryMetadata.class.getDeclaredField("exprInJoins"); Type type = factory.get(field.getType(), field.getGenericType()); assertEquals(TypeCategory.SET, type.getCategory()); Type parameter = type.getParameters().get(0); assertEquals(Expression.class, parameter.getJavaClass()); parameter = parameter.getParameters().get(0); assertEquals(TypeExtends.class, parameter.getClass()); assertNull(((TypeExtends)parameter).getVarName()); }
@Test public void Resolve() { TypeFactory factory = new TypeFactory(Collections.<Class<? extends Annotation>>emptyList()); Type type = factory.get(AbstractCollectionAttribute.class); assertEquals("com.mysema.query.codegen.Generic2Test.AbstractCollectionAttribute", type.getGenericName(false)); assertEquals("com.mysema.query.codegen.Generic2Test.AbstractCollectionAttribute", type.getGenericName(true)); }
@Test public void Blob() { Type blob = factory.get(Blob.class); assertEquals("Blob", blob.getSimpleName()); assertEquals("java.sql.Blob", blob.getFullName()); assertEquals("java.sql", blob.getPackageName()); }
@Test public void Boolean() { Type bo = factory.get(boolean.class); assertEquals(TypeCategory.BOOLEAN, bo.getCategory()); assertEquals("Boolean", bo.getSimpleName()); assertEquals("java.lang.Boolean", bo.getFullName()); assertEquals("java.lang", bo.getPackageName()); }