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 BlockBuilder<T> appendAll(Collection<Statement> stmt) { blockStatement.addAllStatements(stmt); return this; }
@Override public void clear() { blockStatement.getStatements().clear(); } }
public BlockStatement getDefaultBlock() { if (defaultBlock == null) defaultBlock = new BlockStatement(); return defaultBlock; }
final BlockStatement block = new BlockStatement(); 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", return (block.isEmpty()) ? EmptyStatement.INSTANCE : block;
@Override public BlockBuilder<T> append(final Statement statement) { blockStatement.addStatement(statement); return this; }
@Override public String generate(Context context) { if (generatedCache != null) return generatedCache; final StringBuilder buf = new StringBuilder("try {\n"); buf.append(block.generate(context)).append("\n} "); if (!catchBlocks.isEmpty()) { for (final Variable exception : catchBlocks.keySet()) { final Context ctx = Context.create(context).addVariable(exception); buf.append("catch (").append(exception.generate(ctx)).append(") ") .append("{\n") .append(catchBlocks.get(exception).generate(ctx)) .append("\n} "); } } else if (finallyBlock == null) { finallyBlock = new BlockStatement(); } if (finallyBlock != null) { final Context ctx = Context.create(context); buf.append(" finally {\n").append(finallyBlock.generate(ctx)).append("\n}\n"); } return generatedCache = buf.toString(); } }
@Override public String generate(Context context) { if (generatedCache != null) return generatedCache; final StringBuilder builder = new StringBuilder("if "); builder.append("(").append(getCondition().generate(context)).append(") "); builder.append("{\n"); if (getBlock() != null) { builder.append(getBlock().generate(Context.create(context))); } builder.append("\n} "); if (elseIfBlock != null) { builder.append("else ").append(elseIfBlock.generate(Context.create(context))); return builder.toString(); } if (elseBlock != null && !elseBlock.isEmpty()) { builder.append("else {\n").append(elseBlock.generate(Context.create(context))).append("\n} "); return builder.toString(); } return generatedCache = builder.toString(); } }
@Override public String generate(Context context) { if (generatedCache != null) return generatedCache; final StringBuilder builder = new StringBuilder("while (") .append(getCondition().generate(context)).append(") {\n"); if (getBlock() != null) { builder.append(getBlock().generate(context)); } builder.append("\n}"); return generatedCache = builder.toString(); } }
public BlockStatement getDefaultBlock() { if (defaultBlock == null) defaultBlock = new BlockStatement(); return defaultBlock; }
final BlockStatement block = new BlockStatement(); 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", return (block.isEmpty()) ? EmptyStatement.INSTANCE : block;
@Override public BlockBuilder<T> append(final Statement statement) { blockStatement.addStatement(statement); return this; }
@Override public String generate(Context context) { if (generatedCache != null) return generatedCache; final StringBuilder buf = new StringBuilder("try {\n"); buf.append(block.generate(context)).append("\n} "); if (!catchBlocks.isEmpty()) { for (final Variable exception : catchBlocks.keySet()) { final Context ctx = Context.create(context).addVariable(exception); buf.append("catch (").append(exception.generate(ctx)).append(") ") .append("{\n") .append(catchBlocks.get(exception).generate(ctx)) .append("\n} "); } } else if (finallyBlock == null) { finallyBlock = new BlockStatement(); } if (finallyBlock != null) { final Context ctx = Context.create(context); buf.append(" finally {\n").append(finallyBlock.generate(ctx)).append("\n}\n"); } return generatedCache = buf.toString(); } }
@Override public String generate(Context context) { if (generatedCache != null) return generatedCache; final StringBuilder builder = new StringBuilder("if "); builder.append("(").append(getCondition().generate(context)).append(") "); builder.append("{\n"); if (getBlock() != null) { builder.append(getBlock().generate(Context.create(context))); } builder.append("\n} "); if (elseIfBlock != null) { builder.append("else ").append(elseIfBlock.generate(Context.create(context))); return builder.toString(); } if (elseBlock != null && !elseBlock.isEmpty()) { builder.append("else {\n").append(elseBlock.generate(Context.create(context))).append("\n} "); return builder.toString(); } return generatedCache = builder.toString(); } }
@Override public String generate(Context context) { final StringBuilder builder = new StringBuilder("do {\n"); if (getBlock() != null) { builder.append(getBlock().generate(context)); } builder.append("\n} while (").append(getCondition().generate(context)).append(");\n"); return builder.toString(); } }
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; } }
public BlockStatement getFinallyBlock() { if (finallyBlock == null) finallyBlock = new BlockStatement(); return finallyBlock; }
final BlockStatement block = new BlockStatement(); 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); return block.isEmpty() ? null : block;
@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; }