private void implementConstructor(final ClassStructureBuilder<?> proxyImpl, final MetaConstructor accessibleConstructor) { final Object[] args = new Object[accessibleConstructor.getParameters().length]; for (int i = 0; i < args.length; i++) { args[i] = loadLiteral(null); } proxyImpl.publicConstructor().callSuper(args).finish(); }
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(); }
final ConstructorBlockBuilder<?> ctor = classBuilder.publicConstructor();
@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); }
@Test public void testDefineClassWithConstructorCallingSuper() { final String cls = ClassBuilder.define("org.foo.Foo") .publicScope() .body() .publicConstructor() .callSuper() .finish() .toJavaString(); assertEquals("failed to generate class with constructor calling super()", CLASS_WITH_CONSTRUCTOR_CALLING_SUPER, cls); }
@Test public void testDefineClassWithConstructorCallingThis() { final String cls = ClassBuilder.define("org.foo.Foo") .publicScope() .body() .privateField("b", boolean.class) .finish() .publicConstructor() .callThis(false) .finish() .publicConstructor(Parameter.of(boolean.class, "b")) .append(Stmt.loadClassMember("b").assignValue(Variable.get("b"))) .finish() .toJavaString(); assertEquals("failed to generate class with constructor calling this()", CLASS_WITH_CONSTRUCTOR_CALLING_THIS, cls); }
ConstructorBlockBuilder<?> ctor = classBuilder.publicConstructor(); final Collection<MetaClass> pages = ClassScanner.getTypesAnnotatedWith(Page.class, context); addCacheRelevantClasses(pages);
ConstructorBlockBuilder<?> ctor = classBuilder.publicConstructor(); final Collection<MetaClass> pages = ClassScanner.getTypesAnnotatedWith(Page.class, context); addCacheRelevantClasses(pages);
@Test public void testDefineClassWithFieldInheritance() { final String cls = ClassBuilder .define("org.foo.Foo", Parent.class) .publicScope() .body() .publicConstructor() .append(Stmt.loadVariable("parentProtected").assignValue(0)) .append(Stmt.loadVariable("parentPublic").assignValue(0)) .finish() .toJavaString(); assertEquals("failed to generate class with parent", CLASS_WITH_FIELD_INHERITANCE, cls); }
@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); }
@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); }
.privateField("errorCallback", ErrorCallback.class) .finish() .publicConstructor() .append(generateConstructor()) .finish()
.initializesWith(Stmt.newObject(mapStringAnnoComp)).finish(); final ConstructorBlockBuilder<? extends ClassStructureBuilder<?>> constrBuilder = builder.publicConstructor();
autoInitializedField(classStructureBuilder, javaUtilMap, MARSHALLERS_VAR, mapClass); final ConstructorBlockBuilder<?> constructor = classStructureBuilder.publicConstructor();
autoInitializedField(classStructureBuilder, javaUtilMap, MARSHALLERS_VAR, mapClass); final ConstructorBlockBuilder<?> constructor = classStructureBuilder.publicConstructor();
.privateField(targetField, bindable) .finish() .publicConstructor() .callThis(Stmt.newObject(bindable)) .finish() .publicConstructor(Parameter.of(bindable, "targetVal")) .append(Stmt.loadVariable(agentField).assignValue( Stmt.newObject(parameterizedAs(BindableProxyAgent.class, typeParametersOf(bindable)),
.privateField(targetField, bindable) .finish() .publicConstructor() .callThis(Stmt.newObject(bindable)) .finish() .publicConstructor(Parameter.of(bindable, "targetVal")) .append(Stmt.loadVariable(agentField).assignValue( Stmt.newObject(parameterizedAs(BindableProxyAgent.class, typeParametersOf(bindable)),
@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); }