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(); }
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(); }
marshaller = Stmt.declareFinalVariable(varName, marshallerCls, Stmt.newObject(marshallerCls)); constructor.append(marshaller); constructor.append(Stmt.create(classContext).loadVariable(MARSHALLERS_VAR).invoke("put", clsName, loadVariable(varName))); constructor.append(Stmt.create(classContext).loadVariable(MARSHALLERS_VAR) .invoke("put", aliasEntry.getKey(), loadVariable(varName)));
marshaller = Stmt.declareFinalVariable(varName, marshallerCls, Stmt.newObject(marshallerCls)); constructor.append(marshaller); constructor.append(Stmt.create(classContext).loadVariable(MARSHALLERS_VAR).invoke("put", clsName, loadVariable(varName))); constructor.append(Stmt.create(classContext).loadVariable(MARSHALLERS_VAR) .invoke("put", aliasEntry.getKey(), loadVariable(varName)));
throw new GenerationException("Default Page must not contain any path parameters."); ctor.append(Stmt.declareFinalVariable("defaultPage", PageNode.class, pageImplStmt)); pageImplStmt = Variable.get("defaultPage"); ctor.append( Stmt.nestedCall(Refs.get("pagesByName")) .invoke("put", "", pageImplStmt)); ctor.append( Stmt.nestedCall(Refs.get("pagesByRole")) .invoke("put", DefaultPage.class, pageImplStmt)); ctor.append(Stmt.declareFinalVariable(fieldName, PageNode.class, pageImplStmt)); ctor.append( Stmt.nestedCall(Refs.get("pagesByName")) .invoke("put", pageName, Refs.get(fieldName))); ctor.append( Stmt.nestedCall(Refs.get("pagesByRole")) .invoke("put", annotatedPageRole, Refs.get(fieldName)));
throw new GenerationException("Default Page must not contain any path parameters."); ctor.append(Stmt.declareFinalVariable("defaultPage", PageNode.class, pageImplStmt)); pageImplStmt = Variable.get("defaultPage"); ctor.append( Stmt.nestedCall(Refs.get("pagesByName")) .invoke("put", "", pageImplStmt)); ctor.append( Stmt.nestedCall(Refs.get("pagesByRole")) .invoke("put", DefaultPage.class, pageImplStmt)); ctor.append(Stmt.declareFinalVariable(fieldName, PageNode.class, pageImplStmt)); ctor.append( Stmt.nestedCall(Refs.get("pagesByName")) .invoke("put", pageName, Refs.get(fieldName))); ctor.append( Stmt.nestedCall(Refs.get("pagesByRole")) .invoke("put", annotatedPageRole, Refs.get(fieldName)));
ctor.append(Stmt.loadVariable("this").invoke("registerTranslation", name, value, null)); ctor.append(Stmt.declareVariable(messageBundleResourceInterface).named(msgBundleVarName) .initializeWith(Stmt.invokeStatic(GWT.class, "create", messageBundleResourceInterface))); ctor.append(Stmt.loadVariable("this").invoke(registerBundleMethod, Stmt.loadVariable(msgBundleVarName).invoke("getContents").invoke("getText"), locale));
ctor.append(Stmt.loadVariable("this").invoke("registerTranslation", name, value, null)); ctor.append(Stmt.declareVariable(messageBundleResourceInterface).named(msgBundleVarName) .initializeWith(Stmt.invokeStatic(GWT.class, "create", messageBundleResourceInterface))); ctor.append(Stmt.loadVariable("this").invoke(registerBundleMethod, Stmt.loadVariable(msgBundleVarName).invoke("getContents").invoke("getText"), locale));
@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 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); }
.finish() .publicConstructor() .append(generateConstructor()) .finish() .publicMethod(RemoteCallback.class, "getRemoteCallback")
.finish() .publicConstructor(Parameter.of(bindable, "targetVal")) .append(Stmt.loadVariable(agentField).assignValue( Stmt.newObject(parameterizedAs(BindableProxyAgent.class, typeParametersOf(bindable)), Variable.get("this"), Variable.get("targetVal"))))
.finish() .publicConstructor(Parameter.of(bindable, "targetVal")) .append(Stmt.loadVariable(agentField).assignValue( Stmt.newObject(parameterizedAs(BindableProxyAgent.class, typeParametersOf(bindable)), Variable.get("this"), Variable.get("targetVal"))))