@Test public void testDefineClassWithConstructorsOfAllScopes() { final String cls = ClassBuilder .define("org.foo.Foo") .publicScope() .body() .publicConstructor() .finish() .protectedConstructor() .finish() .packageConstructor() .finish() .privateConstructor() .finish() .toJavaString(); assertEquals("failed to generate class with constructors of all scopes", CLASS_WITH_CONSTRUCTORS_OF_ALL_SCOPES, cls); }
static String generateSource(final Iterable<MetaClass> qualifiers) { final ClassStructureBuilder<?> body = ClassBuilder .define(SERIALIZER_PACKAGE_NAME + "." + SERIALIZER_CLASS_NAME, EventQualifierSerializer.class) .publicScope().body(); final ConstructorBlockBuilder<?> ctor = body.publicConstructor(); for (final MetaClass qual : qualifiers) { final Collection<MetaMethod> bindingAttributes = CDIAnnotationUtils.getAnnotationAttributes(qual); if (!bindingAttributes.isEmpty()) { ctor.append(loadVariable("serializers").invoke("put", qual.getFullyQualifiedName(), generateEntryStatement(qual, bindingAttributes))); } } ctor.finish(); return body.toJavaString(); }
protected void implementConstructor(final ClassStructureBuilder<?> bodyBlockBuilder, final Injectable injectable) { final Statement newObject = generateFactoryHandleStatement(injectable); final ConstructorBlockBuilder<?> con = bodyBlockBuilder.publicConstructor(); con.callSuper(newObject); con.append(loadVariable("handle").invoke("setAssignableTypes", getAssignableTypesArrayStmt(injectable))); final org.jboss.errai.ioc.rebind.ioc.graph.api.Qualifier qualifier = injectable.getQualifier(); if (!qualifier.isDefaultQualifier()) { final AbstractStatementBuilder qualArray = getAnnotationArrayStmt(qualifier); con.append(loadVariable("handle").invoke("setQualifiers", qualArray)); } con.finish(); }
ctor.finish();
@Test public void testDefineAbstractClass() { final String cls = ClassBuilder .define("org.foo.Foo") .publicScope() .abstractClass() .body() .publicConstructor() .finish() .toJavaString(); assertEquals("failed to generate abstract class", ABSTRACT_CLASS, cls); }
@Test public void testDefineClassWithParent() { final String cls = ClassBuilder .define("org.foo.Foo", String.class) .publicScope() .body() .publicConstructor(Parameter.of(int.class, "i")) .finish() .toJavaString(); assertEquals("failed to generate class with parent", CLASS_WITH_PARENT, cls); }
ctor.finish();
@Test public void testDefineAbstractClassWithAbstractMethods() { final String cls = ClassBuilder .define("org.foo.Foo") .publicScope() .abstractClass() .body() .publicConstructor() .finish() .publicAbstractMethod(void.class, "foo") .finish() .protectedAbstractMethod(void.class, "bar") .finish() .publicMethod(void.class, "baz") .finish() .toJavaString(); assertEquals("failed to generate abstract class with abstract method", ABSTRACT_CLASS_WITH_ABSTRACT_METHODS, cls); }
constrBuilder.finish();
constructor.finish();
constructor.finish();
@SuppressWarnings("unchecked") @Test public void testDefineAbstractClassWithAbstractMethods2() { final String cls = ClassBuilder .define("org.foo.Foo") .publicScope() .abstractClass() .body() .publicConstructor() .finish() .publicAbstractMethod(MetaClassFactory.get(String.class), "someString").finish() .publicAbstractMethod(Integer.class, "someInteger", Parameter.finalOf(long.class, "aLong")).finish() .publicAbstractMethod(void.class, "foo", String.class, Integer.class).throws_(Throwable.class) .protectedAbstractMethod(void.class, "bar", Long.class, Double.class).throws_(UnsupportedOperationException.class) .protectedAbstractMethod(Long.class, "funTimes", Parameter.finalOf(String.class, "str")).finish() .packageAbstractMethod(void.class, "foobaz", Map.class) .throws_(MetaClassFactory.get(ClassNotFoundException.class)) .packageAbstractMethod(Float.class, "boringTimes", Parameter.of(byte[].class, "byteArr")).finish() .publicMethod(void.class, "baz") .finish() .toJavaString(); assertEquals(ABSTRACT_CLASS_WITH_ABSTRACT_METHODS_2, cls); }