.extend() .publicOverridesMethod("renderTemplate", Parameter.of(String.class, "template", true)) .appendAll(initStmts) .finish() .finish());
.extend() .publicOverridesMethod("renderTemplate", Parameter.of(String.class, "template", true)) .appendAll(initStmts) .finish() .finish());
private BlockBuilder<AnonymousClassStructureBuilder> getSubscriptionCallback(final Decorable decorable, final FactoryController controller) { final MetaParameter parm = decorable.getAsParameter(); final MetaClass eventType = parm.getType().asBoxed(); final String parmClassName = eventType.getFullyQualifiedName(); final List<Annotation> annotations = InjectUtil.extractQualifiers(parm); final Annotation[] qualifiers = annotations.toArray(new Annotation[annotations.size()]); final Set<String> qualifierNames = new HashSet<>(CDI.getQualifiersPart(qualifiers)); final MetaClass callBackType = parameterizedAs(AbstractCDIEventCallback.class, typeParametersOf(eventType)); AnonymousClassStructureBuilder callBack = Stmt.newObject(callBackType).extend(); BlockBuilder<AnonymousClassStructureBuilder> callBackBlock; if (!qualifierNames.isEmpty()) { callBackBlock = callBack.initialize(); for (final String qualifierName : qualifierNames) { callBackBlock.append(Stmt.loadClassMember("qualifierSet").invoke("add", qualifierName)); } callBack = callBackBlock.finish(); } final List<Statement> fireEventStmts = new ArrayList<>(); if (!decorable.isEnclosingTypeDependent()) { fireEventStmts.add(Stmt.declareFinalVariable("instance", decorable.getEnclosingInjectable().getInjectedType(), Stmt.invokeStatic(Factory.class, "maybeUnwrapProxy", controller.contextGetInstanceStmt()))); } fireEventStmts.add(decorable.call(Refs.get("event"))); callBackBlock = callBack.publicOverridesMethod("fireEvent", Parameter.finalOf(eventType, "event")) .appendAll(fireEventStmts) .finish() .publicOverridesMethod("toString") ._(Stmt.load("Observer: " + parmClassName + " " + Arrays.toString(qualifiers)).returnValue()); return callBackBlock; }
private BlockBuilder<AnonymousClassStructureBuilder> getJsTypeSubscriptionCallback(final Decorable decorable, final FactoryController controller) { final MetaParameter parm = decorable.getAsParameter(); final MetaClass eventType = parm.getType().asBoxed(); final String parmClassName = eventType.getFullyQualifiedName(); final MetaClass callBackType = parameterizedAs(JsTypeEventObserver.class, typeParametersOf(eventType)); final AnonymousClassStructureBuilder callBack = Stmt.newObject(callBackType).extend(); BlockBuilder<AnonymousClassStructureBuilder> callBackBlock; final List<Statement> fireEventStmts = new ArrayList<>(); if (!decorable.isEnclosingTypeDependent()) { fireEventStmts.add(Stmt.declareFinalVariable("instance", decorable.getEnclosingInjectable().getInjectedType(), Stmt.invokeStatic(Factory.class, "maybeUnwrapProxy", controller.contextGetInstanceStmt()))); } fireEventStmts.add(decorable.call(Refs.get("event"))); callBackBlock = callBack.publicOverridesMethod("onEvent", Parameter.finalOf(eventType, "event")) .appendAll(fireEventStmts) .finish() .publicOverridesMethod("toString") ._(Stmt.load("JsTypeObserver: " + parmClassName).returnValue()); return callBackBlock; } }
.extend() .publicOverridesMethod("invokeBinding", Parameter.of(Element.class, "element")) .appendAll(bindExecStmts) .finish() .finish();
.appendAll(callbackStatements) .finish() .publicOverridesMethod("toString")
.extend() .publicOverridesMethod("invokeBinding", Parameter.of(Element.class, "element")) .appendAll(bindExecStmts) .finish() .finish();
private void bootstrapContainer(final IOCProcessingContext processingContext, final DependencyGraph dependencyGraph, final Set<MetaClass> scopeContextSet, final Statement[] contextLocalVarInvocation, final String contextManagerFieldName) { processingContext.getBlockBuilder() .appendAll(contextLocalVarDeclarations(scopeContextSet)) .append(loadVariable("logger").invoke("debug", "Registering factories with contexts.")) .append(declareVariable("start", long.class, currentTime())) .append(loadVariable("this").invoke("registerFactories", (Object[]) contextLocalVarInvocation)) .append(loadVariable("logger").invoke("debug", "Registered " + dependencyGraph.getNumberOfInjectables() + " factories in {}ms", subtractFromCurrentTime(loadVariable("start")))) .append(loadVariable("logger").invoke("debug", "Adding contexts to context manager...")) .append(loadVariable("start").assignValue(currentTime())); addContextsToContextManager(scopeContextSet, contextManagerFieldName, processingContext.getBlockBuilder()); processingContext.getBlockBuilder() .append(loadVariable("logger").invoke("debug", "Added " + scopeContextSet.size() + " contexts in {}ms", subtractFromCurrentTime(loadVariable("start")))) .append(loadVariable("logger").invoke("debug", "Calling finishInit on " + ContextManager.class.getSimpleName())) .append(loadVariable("start").assignValue(currentTime())); callFinishInitOnContextManager(contextManagerFieldName, processingContext.getBlockBuilder()); processingContext.getBlockBuilder() .append(loadVariable("logger").invoke("debug", "ContextManager#finishInit ran in {}ms", subtractFromCurrentTime(loadVariable("start")))); }
BooleanExpressionBuilder.create(loadVariable("proxyHelper"), BooleanOperator.NotEquals, null)) .append(proxiedInstanceDeclaration) .appendAll(controller.getInvokeBeforeStatements(method)); if (method.getReturnType().isVoid()) { ifBlock.append(proxyHelperInvocation); ifBlock.appendAll(controller.getInvokeAfterStatements(method)); body.append(ifBlock.finish().else_().append(nonInitializedCase).finish()); } else { ifBlock.append(declareFinalVariable("retVal", method.getReturnType().getErased(), proxyHelperInvocation)); ifBlock.appendAll(controller.getInvokeAfterStatements(method)); ifBlock.append(loadVariable("retVal").returnValue()); if (nonInitializedReturns) {
.append(generatePropertiesMap()) .append(agent().invoke("copyValues")) .appendAll(registerDeclarativeHandlers(bindable)) .finish() .publicMethod(BindableProxyAgent.class, "getBindableProxyAgent")
.append(generatePropertiesMap()) .append(agent().invoke("copyValues")) .appendAll(registerDeclarativeHandlers(bindable)) .finish() .publicMethod(BindableProxyAgent.class, "getBindableProxyAgent")