public ClassBuilder<T> importsClass(final MetaClass clazz) { classDefinition.getContext().addImport(clazz); return this; }
public ClassBuilder<T> importsClass(final MetaClass clazz) { classDefinition.getContext().addImport(clazz); return this; }
private static String _getClassReference(final MetaType metaClass, final Context context, final boolean typeParms) { final MetaClass erased; if (metaClass instanceof MetaClass) { erased = ((MetaClass) metaClass).getErased(); } else { return "Object"; } String fqcn = erased.getCanonicalName(); final int idx = fqcn.lastIndexOf('.'); if (idx != -1) { if ((context.isAutoImportActive() || "java.lang".equals(erased.getPackageName())) && !context.hasImport(erased)) { context.addImport(erased); } if (context.hasImport(erased)) { fqcn = fqcn.substring(idx + 1); } } final StringBuilder buf = new StringBuilder(fqcn); if (typeParms) { buf.append(getClassReferencesForParameterizedTypes(((MetaClass) metaClass).getParameterizedType(), context)); } return buf.toString(); }
private static String _getClassReference(final MetaType metaClass, final Context context, final boolean typeParms) { final MetaClass erased; if (metaClass instanceof MetaClass) { erased = ((MetaClass) metaClass).getErased(); } else { return "Object"; } String fqcn = erased.getCanonicalName(); final int idx = fqcn.lastIndexOf('.'); if (idx != -1) { if ((context.isAutoImportActive() || "java.lang".equals(erased.getPackageName())) && !context.hasImport(erased)) { context.addImport(erased); } if (context.hasImport(erased)) { fqcn = fqcn.substring(idx + 1); } } final StringBuilder buf = new StringBuilder(fqcn); if (typeParms) { buf.append(getClassReferencesForParameterizedTypes(((MetaClass) metaClass).getParameterizedType(), context)); } return buf.toString(); }
@Test public void testObjectCreationWithNestedParameterizedTypeAndClassImports() { final Context c = Context.create() .addImport(MetaClassFactory.get(ArrayList.class)) .addImport(MetaClassFactory.get(HashMap.class)); final String s = StatementBuilder.create(c) .newObject(new TypeLiteral<ArrayList<ArrayList<HashMap<String, Integer>>>>() { }).toJavaString(); assertEquals("failed to generate new object with parameterized type", "new ArrayList<ArrayList<HashMap<String, Integer>>>()", s); }
@Test public void testObjectCreationWithFullyQualifiedParameterizedTypeAndClassImport() { final Context c = Context.create().addImport(MetaClassFactory.get(ArrayList.class)); final String s = StatementBuilder.create(c).newObject(new TypeLiteral<ArrayList<Date>>() { }).toJavaString(); assertEquals("failed to generate new object with parameterized type", "new ArrayList<java.util.Date>()", s); }
@Test public void testObjectCreationWithParameterizedTypeAndClassImport() { final Context c = Context.create().addImport(MetaClassFactory.get(ArrayList.class)); final String s = StatementBuilder.create(c).newObject(new TypeLiteral<ArrayList<String>>() { }).toJavaString(); assertEquals("failed to generate new object with parameterized type", "new ArrayList<String>()", s); }