private Statement generateInterceptorLogic(ClassStructureBuilder<?> classBuilder, MetaMethod method, Statement requestLogic, List<Statement> parmVars, List<Class<?>> interceptors) { final Statement callContext = ProxyUtil.generateProxyMethodCallContext(context, RemoteCallContext.class, classBuilder.getClassDefinition(), method, requestLogic, interceptors).finish(); return Stmt.try_() .append( Stmt.declareVariable(CallContextStatus.class).asFinal().named("status").initializeWith( Stmt.newObject(CallContextStatus.class).withParameters(interceptors.toArray()))) .append( Stmt.declareVariable(RemoteCallContext.class).asFinal().named("callContext") .initializeWith(callContext)) .append( Stmt.loadVariable("callContext").invoke("setParameters", Stmt.newArray(Object.class).initialize(parmVars.toArray()))) .append( Stmt.loadVariable("callContext").invoke("proceed")) .finish() .catch_(Throwable.class, "throwable") .append( If.cond(Bool.notEquals(Stmt.loadVariable("errorCallback"), Stmt.loadLiteral(null))) .append( If.cond(Stmt.loadVariable("errorCallback").invoke("error", Stmt.load(null), Variable.get("throwable"))) .append(Stmt.loadVariable("this").invoke("invokeDefaultErrorHandlers", Variable.get("throwable"))) .finish() ).finish() .else_() .append(Stmt.loadVariable("this").invoke("invokeDefaultErrorHandlers", Variable.get("throwable"))) .finish()) .finish(); }
public static BlockBuilder<ElseBlockBuilder> instanceOf(final Object lhs, final Class<?> type) { return instanceOf(lhs, MetaClassFactory.get(type)); }
private ElseBlockBuilder generateGetMarshallerHelperMethods() { createPutMarshallerMethod(); BlockBuilder<ElseBlockBuilder> getMarshallerConditionalBlock = If.isNotNull(Stmt.loadVariable("m")) .append(Stmt.loadVariable("m").returnValue()); int methodIndex = 0, typeIndex = 0;
If.isNull(Stmt.loadVariable("status").invoke("getNextInterceptor"))._(proceed).finish(); Variable.get("ctx"))) .append( If.cond(Bool.and( Bool.notExpr(Stmt.loadVariable("status").invoke("isProceeding")), Bool.equals(Stmt.loadLiteral(interceptor), Stmt.loadVariable("status").invoke("getNextInterceptor"))))
final String elemVarName = property + "Elem"; final BlockBuilder<ElseBlockBuilder> colBlock = If.isNotNull(Stmt.nestedCall( loadVariable(targetVar).invoke(readMethod))); Stmt.nestedCall(loadVariable(targetVar).invoke(readMethod)).foreach(elemVarName, Object.class) .append ( If.instanceOf(Refs.get(elemVarName), BindableProxy.class) .append (Stmt.loadVariable(colVarName) .invoke("add", Stmt.castTo(BindableProxy.class, Stmt.loadVariable(elemVarName)).invoke(methodName)) final Statement field = loadVariable(targetVar).invoke(readMethod); block.addStatement ( If.instanceOf(field, BindableProxy.class) .append(Stmt.loadVariable(cloneVar).invoke(writeMethod, Cast.to (
if (method.getReturnType().isPrimitive()) { isEqualBuilder._( If.notEquals(Stmt.loadVariable("a1").invoke(method), Stmt.loadVariable("a2").invoke(method)) ._(Stmt.load(false).returnValue()) .finish() If.not(Stmt.invokeStatic(Arrays.class, "equals", Stmt.loadVariable("a1").invoke(method), Stmt.loadVariable("a2").invoke(method)) If.not(Stmt.loadVariable("a1").invoke(method).invoke("equals", Stmt.loadVariable("a2").invoke(method))) ._(Stmt.load(false).returnValue()) .finish()
.append(If.not(Stmt.loadVariable("url").invoke("toString").invoke("endsWith", "?")) .append(Stmt.loadVariable("url").invoke(APPEND, "&")).finish()) .append(Stmt.loadVariable("url").invoke(APPEND, queryParamName).invoke(APPEND, "=")
If.isNull(Stmt.loadVariable("status").invoke("getNextInterceptor"))._(proceed).finish(); Variable.get("ctx"))) .append( If.cond(Bool.and( Bool.notExpr(Stmt.loadVariable("status").invoke("isProceeding")), Bool.equals(Stmt.loadLiteral(interceptor), Stmt.loadVariable("status").invoke("getNextInterceptor"))))
final String elemVarName = property + "Elem"; final BlockBuilder<ElseBlockBuilder> colBlock = If.isNotNull(Stmt.nestedCall( loadVariable(targetVar).invoke(readMethod))); Stmt.nestedCall(loadVariable(targetVar).invoke(readMethod)).foreach(elemVarName, Object.class) .append ( If.instanceOf(Refs.get(elemVarName), BindableProxy.class) .append (Stmt.loadVariable(colVarName) .invoke("add", Stmt.castTo(BindableProxy.class, Stmt.loadVariable(elemVarName)).invoke(methodName)) final Statement field = loadVariable(targetVar).invoke(readMethod); block.addStatement ( If.instanceOf(field, BindableProxy.class) .append(Stmt.loadVariable(cloneVar).invoke(writeMethod, Cast.to (
public static Statement buildCheckStatement(ContextualStatementBuilder authzCall, String onGranted, String onDenied) { BooleanExpression boolExpr = BooleanExpressionBuilder.create(authzCall).negate(); BlockBuilder<ElseBlockBuilder> builder = If.cond(boolExpr); if (onDenied != null && onDenied.trim().length() > 0) { builder.append(Stmt.loadVariable("this").invoke(onDenied)); } BlockBuilder<StatementEnd> endBuilder = builder.append(Stmt.returnVoid()).finish().else_(); if (onGranted != null && onGranted.trim().length() > 0) { endBuilder.append(Stmt.loadVariable("this").invoke(onGranted)); } return endBuilder.finish(); }
public static BlockBuilder<ElseBlockBuilder> instanceOf(final Object lhs, final Class<?> type) { return instanceOf(lhs, MetaClassFactory.get(type)); }
private ElseBlockBuilder generateGetMarshallerHelperMethods() { createPutMarshallerMethod(); BlockBuilder<ElseBlockBuilder> getMarshallerConditionalBlock = If.isNotNull(Stmt.loadVariable("m")) .append(Stmt.loadVariable("m").returnValue()); int methodIndex = 0, typeIndex = 0;
public static Statement buildCheckStatement(ContextualStatementBuilder authzCall, String onGranted, String onDenied) { BooleanExpression boolExpr = BooleanExpressionBuilder.create(authzCall).negate(); BlockBuilder<ElseBlockBuilder> builder = If.cond(boolExpr); if (onDenied != null && onDenied.trim().length() > 0) { builder.append(Stmt.loadVariable("this").invoke(onDenied)); } BlockBuilder<StatementEnd> endBuilder = builder.append(Stmt.returnVoid()).finish().else_(); if (onGranted != null && onGranted.trim().length() > 0) { endBuilder.append(Stmt.loadVariable("this").invoke(onGranted)); } return endBuilder.finish(); }
If.instanceOf(Stmt.loadVariable(entityInstanceParam), WrappedPortable.class) .append( Stmt.loadVariable(entityInstanceParam).assignValue(