Examples of BlockBuilder


Examples of org.jboss.errai.codegen.builder.BlockBuilder

      renderGlobalProvider(injectableInstance);
      return registerDestructorCallback(injectionContext, injectionContext.getProcessingContext().getBlockBuilder(),
          producerInjectableInstance.getValueStatement(), disposerMethod);
    }

    final BlockBuilder callbackBuilder = injectionContext.getProcessingContext().getBlockBuilder();

    final MetaClass creationCallbackRef = parameterizedAs(BeanProvider.class,
        typeParametersOf(injectedType));

    final String var = InjectUtil.getUniqueVarName();

    callbackBuilder.append(Stmt.declareFinalVariable(var, creationCallbackRef,
        ObjectBuilder.newInstanceOf(creationCallbackRef)
            .extend()
            .publicOverridesMethod("getInstance", Parameter.of(CreationalContext.class, "pContext"))
            ._(Stmt.declareVariable(injectedType)
                .named(var).initializeWith(producerInjectableInstance.getValueStatement()))
View Full Code Here

Examples of org.jboss.errai.codegen.builder.BlockBuilder

      for (int i = 0; i < parameters.length; i++) {
        methodParms.add(Parameter.of(parameters[i].getType().getErased(), "a" + i));
      }

      final DefParameters defParameters = DefParameters.fromParameters(methodParms);
      final BlockBuilder methBody = builder.publicMethod(method.getReturnType(), method.getName())
          .annotatedWith(OVERRIDE_ANNOTATION)
          .parameters(defParameters)
          .throws_(method.getCheckedExceptions());
     
      // Put method body into conditional, executed only after initialization
      BlockBuilder<ElseBlockBuilder> ifBody = Stmt.create().if_(
              BooleanExpressionBuilder.create(Stmt.loadVariable(stateVar)));

      ifBody.appendAll(getAroundInvokeStatements(method));
      ifBody.appendAll(getBeforeStatements(method));

      final List<Parameter> parms = defParameters.getParameters();

      final Statement[] statementVars = new Statement[parms.size()];
      for (int i = 0; i < parms.size(); i++) {
        statementVars[i] = loadVariable(parms.get(i).getName());
      }

      if (!method.isPublic()) {
        PrivateAccessUtil.addPrivateAccessStubs(privateAccessorType, builder, method, new Modifier[0]);

        final Statement[] privateAccessStmts = new Statement[statementVars.length + 1];
        privateAccessStmts[0] = Refs.get(proxyVar);
        System.arraycopy(statementVars, 0, privateAccessStmts, 1, statementVars.length);

        if (method.getReturnType().isVoid()) {
          ifBody._(loadVariable("this").invoke(PrivateAccessUtil.getPrivateMethodName(method), privateAccessStmts));
        }
        else {
          ifBody._(loadVariable("this").invoke(PrivateAccessUtil.getPrivateMethodName(method), privateAccessStmts).returnValue());
        }
      }
      else {
        if (method.getReturnType().isVoid()) {
          ifBody._(loadVariable(proxyVar).invoke(method, statementVars));
        }
        else {
          ifBody._(loadVariable(proxyVar).invoke(method, statementVars).returnValue());
        }
      }

      ifBody.appendAll(getAfterStatements(method));
      ifBody.appendAll(getAroundInvokeStatements(method));

      BlockBuilder<StatementEnd> elseBody = ifBody.finish().else_();
      // Must return in else body if method is not void
      if (!method.getReturnType().isVoid()) {
        elseBody.append(ProxyUtil.generateProxyMethodReturnStatement(method));
      }
     
      methBody.append(elseBody.finish());
      methBody.finish();
    }

    if (renderEqualsAndHash) {
      // implement hashCode()
      builder.publicMethod(int.class, "hashCode")
View Full Code Here

Examples of org.jboss.errai.codegen.builder.BlockBuilder

          method.isStatic() ||
          method.getDeclaringClass().getFullyQualifiedName().equals("java.lang.Object"))
        continue;

      DefParameters defParameters = DefParameters.from(method);
      BlockBuilder methBody = builder.publicMethod(method.getReturnType(), method.getName())
            .parameters(defParameters)
            .throws_(method.getCheckedExceptions());

      List<Parameter> parms = defParameters.getParameters();

      Statement[] statementVars = new Statement[parms.size()];
      for (int i = 0; i < parms.size(); i++) {
        statementVars[i] = loadVariable(parms.get(i).getName());
      }

      if (method.getReturnType().isVoid()) {
        methBody._(loadVariable(proxyVar).invoke(method, statementVars));
      }
      else {
        methBody._(loadVariable(proxyVar).invoke(method, statementVars).returnValue());
      }
      methBody.finish();
    }

    // implement hashCode()
    builder.publicMethod(int.class, "hashCode").body()
            ._(
View Full Code Here

Examples of org.jboss.errai.codegen.framework.builder.BlockBuilder

    for (MetaMethod method : toProxy.getMethods()) {
      if (method.getDeclaringClass().getFullyQualifiedName().equals("java.lang.Object")) continue;
     
      DefParameters defParameters = DefParameters.from(method);
      BlockBuilder methBody = builder.publicMethod(method.getReturnType(), method.getName()).parameters(defParameters)
              .body();

      List<Parameter> parms = defParameters.getParameters();

      Statement[] statementVars = new Statement[parms.size()];
      for (int i = 0; i < parms.size(); i++) {
        statementVars[i] = Stmt.loadVariable(parms.get(i).getName());
      }

      if (method.getReturnType().isVoid()) {
        methBody.append(Stmt.loadVariable(proxyVar).invoke(method, statementVars));
      }
      else {
        methBody.append(Stmt.loadVariable(proxyVar).invoke(method, statementVars).returnValue());
      }
      methBody.finish();
    }
   
    builder.publicMethod(void.class, PROXY_BIND_METHOD).parameters(DefParameters.of(Parameter.of(toProxy, "proxy")))
            .append(Stmt.loadVariable(proxyVar).assignValue(Stmt.loadVariable("proxy"))).finish();
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.