@Override public BlockBuilder<T> append(final InnerClass innerClass) { blockStatement.addStatement(new Statement() { @Override public String generate(final Context context) { return innerClass.generate(context); } @Override public MetaClass getType() { return innerClass.getType(); } }); return this; }
@Override public BlockBuilder<T> append(final Statement statement) { blockStatement.addStatement(statement); return this; }
@Override public BlockBuilder<T> append(final Statement statement) { blockStatement.addStatement(statement); return this; }
@Override public BlockBuilder<T> append(final InnerClass innerClass) { blockStatement.addStatement(new Statement() { @Override public String generate(final Context context) { return innerClass.generate(context); } @Override public MetaClass getType() { return innerClass.getType(); } }); return this; }
private Statement generateRequest(ClassStructureBuilder<?> classBuilder, MetaMethod method, Statement methodParams, boolean intercepted) { final Statement sendable = Stmt .invokeStatic(MessageBuilder.class, "createCall") .invoke("call", remote.getFullyQualifiedName()) .invoke("endpoint", ProxyUtil.createCallSignature(method), Stmt.loadClassMember("qualifiers"), methodParams) .invoke("respondTo", method.getReturnType().asBoxed(), Stmt.loadVariable("remoteCallback")) .invoke("errorsHandledBy", Stmt.loadVariable("errorCallback")); final BlockStatement requestBlock = new BlockStatement(); requestBlock.addStatement(Stmt.declareVariable("sendable", RemoteCallSendable.class, sendable)); requestBlock.addStatement(Stmt.loadStatic(classBuilder.getClassDefinition(), "this") .invoke("sendRequest", Variable.get("bus"), Variable.get("sendable"))); return requestBlock; } }
@Override public void afterInitialization(final IOCProcessingContext context, final InjectionContext injectionContext) { final BlockStatement instanceInitializer = context.getBootstrapClass().getInstanceInitializer(); final Set<MetaClass> knownObserverTypes = new HashSet<>(); for (final MetaParameter parameter : ClassScanner.getParametersAnnotatedWith(Observes.class, context.getGeneratorContext())) { knownObserverTypes.add(parameter.getType()); } final Set<MetaClass> knownTypesWithSuperTypes = new HashSet<>(knownObserverTypes); for (final MetaClass cls : knownObserverTypes) { for (final MetaClass subClass : ClassScanner.getSubTypesOf(cls, context.getGeneratorContext())) { knownTypesWithSuperTypes.add(subClass); } } addTypeHierarchyFor(context, knownTypesWithSuperTypes); instanceInitializer.addStatement(Stmt.nestedCall(Stmt.newObject(CDI.class)) .invoke("initLookupTable", Stmt.invokeStatic(CDIEventTypeLookup.class, "get"))); } }
block.addStatement(Stmt.loadVariable("requestBuilder").invoke("setHeader", key, resourceMethod.getHeaders().get(key))); block.addStatement(Stmt.loadVariable("requestBuilder").invoke("setHeader", headerParamName, headerValueBuilder.invoke("toString"))); .finish(); block.addStatement(setCookie);
methodBody.addStatement( If.instanceOf(Stmt.loadVariable(entityInstanceParam), WrappedPortable.class) .append( methodBody.addStatement( Stmt.loadVariable("this") .invoke(PrivateAccessUtil.getPrivateFieldAccessorName(field),
private Statement generateRequest(ClassStructureBuilder<?> classBuilder, MetaMethod method, Statement methodParams, boolean intercepted) { final Statement sendable = Stmt .invokeStatic(MessageBuilder.class, "createCall") .invoke("call", remote.getFullyQualifiedName()) .invoke("endpoint", ProxyUtil.createCallSignature(method), Stmt.loadClassMember("qualifiers"), methodParams) .invoke("respondTo", method.getReturnType().asBoxed(), Stmt.loadVariable("remoteCallback")) .invoke("errorsHandledBy", Stmt.loadVariable("errorCallback")); final BlockStatement requestBlock = new BlockStatement(); requestBlock.addStatement(Stmt.declareVariable("sendable", RemoteCallSendable.class, sendable)); requestBlock.addStatement(Stmt.loadStatic(classBuilder.getClassDefinition(), "this") .invoke("sendRequest", Variable.get("bus"), Variable.get("sendable"))); return requestBlock; } }
block.addStatement(Stmt.declareFinalVariable("p", new TypeLiteral<Map<String, PropertyType>>() {}, agent("propertyTypes"))); if (isProxiable(readMethod)) { final MetaClass propertyType = readMethod.getReturnType(); block.addStatement(loadVariable("p").invoke( "put", property, block.addStatement(loadVariable("p").invoke( "put", "this",
block.addStatement(Stmt.declareFinalVariable("p", new TypeLiteral<Map<String, PropertyType>>() {}, agent("propertyTypes"))); if (isProxiable(readMethod)) { final MetaClass propertyType = readMethod.getReturnType(); block.addStatement(loadVariable("p").invoke( "put", property, block.addStatement(loadVariable("p").invoke( "put", "this",
methodBody.addStatement( If.instanceOf(Stmt.loadVariable(entityInstanceParam), WrappedPortable.class) .append( methodBody.addStatement( Stmt.loadVariable("this") .invoke(PrivateAccessUtil.getPrivateFieldAccessorName(field),
block.addStatement(Stmt.declareVariable("url", StringBuilder.class, Stmt.newObject(StringBuilder.class, new StringStatement("getBaseUrl()")))); block.addStatement(urlBuilder); Stmt.loadVariable(((Parameter) queryParam).getName()) : Stmt.nestedCall(queryParam); block.addStatement(listParam.foreachIfNotNull("p") .append(If.not(Stmt.loadVariable("url").invoke("toString").invoke("endsWith", "?")) .append(Stmt.loadVariable("url").invoke(APPEND, "&")).finish())
instanceInitializer.addStatement(lookupMethod);
final String targetVar = "t"; final BlockStatement block = new BlockStatement(); block.addStatement(Stmt.declareFinalVariable(cloneVar, bindable, Stmt.newObject(bindable))); block.addStatement(Stmt.declareFinalVariable(targetVar, bindable, Stmt.loadVariable("this").invoke("unwrap"))); block.addStatement(colBlock.finish()); block.addStatement(Stmt.loadVariable(cloneVar).invoke(writeMethod, loadVariable(targetVar).invoke(readMethod))); block.addStatement ( If.instanceOf(field, BindableProxy.class) .append(Stmt.loadVariable(cloneVar).invoke(writeMethod, block.addStatement(Stmt.loadVariable(cloneVar).returnValue());
final String targetVar = "t"; final BlockStatement block = new BlockStatement(); block.addStatement(Stmt.declareFinalVariable(cloneVar, bindable, Stmt.newObject(bindable))); block.addStatement(Stmt.declareFinalVariable(targetVar, bindable, Stmt.loadVariable("this").invoke("unwrap"))); block.addStatement(colBlock.finish()); block.addStatement(Stmt.loadVariable(cloneVar).invoke(writeMethod, loadVariable(targetVar).invoke(readMethod))); block.addStatement ( If.instanceOf(field, BindableProxy.class) .append(Stmt.loadVariable(cloneVar).invoke(writeMethod, block.addStatement(Stmt.loadVariable(cloneVar).returnValue());
final Statement proceed, final List<Class<?>> interceptors) { final BlockStatement proceedLogic = new BlockStatement(); proceedLogic.addStatement(Stmt.loadVariable("status").invoke("proceed")); .finish(); proceedLogic.addStatement(interceptorStack.else_().finish()); return proceedLogic;
final Statement proceed, final List<Class<?>> interceptors) { final BlockStatement proceedLogic = new BlockStatement(); proceedLogic.addStatement(Stmt.loadVariable("status").invoke("proceed")); .finish(); proceedLogic.addStatement(interceptorStack.else_().finish()); return proceedLogic;