com.sun.codemodel.JBlock.assignPlus()方法的使用及代码示例

x33g5p2x  于2022-01-21 转载在 其他  
字(4.0k)|赞(0)|评价(0)|浏览(83)

本文整理了Java中com.sun.codemodel.JBlock.assignPlus()方法的一些代码示例,展示了JBlock.assignPlus()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。JBlock.assignPlus()方法的具体详情如下:
包路径:com.sun.codemodel.JBlock
类名称:JBlock
方法名:assignPlus

JBlock.assignPlus介绍

暂无

代码示例

代码示例来源:origin: fusesource/fuse-extra

public void generateToString() {
  JMethod toString1 = cls().method(JMod.PUBLIC, cm.ref("java.lang.String"), "toString");
  toString1.body()._return(ref("this").invoke("toString").arg(lit("")));
  
  JMethod toString2 = cls().method(JMod.PUBLIC, cm.ref("java.lang.String"), "toString");
  toString2.param(String.class, "indent");
  toString2.body().decl(cm.ref("java.lang.String"), "rc", lit(""));
  for (int i = 0; i < amqpFields.size(); i++) {
    Attribute attr = amqpFields.get(i);
    if ( attr.attribute.type().isArray() ) {
      JBlock block = toString2.body()._if(_this().ref(attr.attribute).ne(_null()))._then().block();
      block._if(ref("rc").invoke("length").ne(lit(0)))._then().assignPlus(ref("rc"), lit(",\n"));
      block.assignPlus(ref("rc"), ref("indent").plus(lit("   " + attr.attribute.name() + ":").plus(cm.ref("java.util.Arrays").staticInvoke("toString").arg(_this().ref(attr.attribute)))));
    } else {
      JExpression value = _this().ref(attr.attribute);
      if ( generator.getMapping().get(attr.type) == null ) {
        value = value.invoke("toString").arg(ref("indent").plus(lit("   ")));
      }
      JBlock block = toString2.body()._if(_this().ref(attr.attribute).ne(_null()))._then().block();
      block._if(ref("rc").invoke("length").ne(lit(0)))._then().assignPlus(ref("rc"), lit(",\n"));
      block.assignPlus(ref("rc"), ref("indent").plus(lit("   " + attr.attribute.name() + ":").plus(value)));
    }
  }
  toString2.body()._if(ref("rc").invoke("length").ne(lit(0)))._then().
      assign(ref("rc"), lit(", {\n").plus(ref("rc").plus(lit("}"))));
  toString2.body()._return(lit("[" + toJavaClassName(type.getName())).plus(ref("rc")).plus(lit("]")));
}

代码示例来源:origin: org.apache.drill.exec/drill-java-exec

@Override
 public HoldingContainer renderEnd(ClassGenerator<?> classGenerator, HoldingContainer[] inputVariables,
                  JVar[] workspaceJVars, FieldReference fieldReference) {
  HoldingContainer out = null;
  JVar internalOutput = null;
  if (getReturnType().getMinorType() != TypeProtos.MinorType.LATE) {
   out = classGenerator.declare(getReturnType(), false);
  }
  JBlock sub = new JBlock();
  if (getReturnType().getMinorType() != TypeProtos.MinorType.LATE) {
   internalOutput = sub.decl(JMod.FINAL, classGenerator.getHolderType(getReturnType()), getReturnValue().getName(),
     JExpr._new(classGenerator.getHolderType(getReturnType())));
  }
  classGenerator.getEvalBlock().add(sub);
  if (getReturnType().getMinorType() == TypeProtos.MinorType.LATE) {
   sub.assignPlus(writerIdx, JExpr.lit(1));
  }
  addProtectedBlock(classGenerator, sub, output(), null, workspaceJVars, false);
  if (getReturnType().getMinorType() != TypeProtos.MinorType.LATE) {
   sub.assign(out.getHolder(), internalOutput);
  }
  //hash aggregate uses workspace vectors. Initialization is done in "setup" and does not require "reset" block.
  if (!classGenerator.getMappingSet().isHashAggMapping()) {
   generateBody(classGenerator, ClassGenerator.BlockType.RESET, reset(), null, workspaceJVars, false);
  }
  generateBody(classGenerator, ClassGenerator.BlockType.CLEANUP, cleanup(), null, workspaceJVars, false);

  return out;
 }
}

代码示例来源:origin: org.jvnet.jaxbvalidation/jaxbvalidation-core

_for.test(JOp.lt(index, regExps.ref("length")));
_for.update(JOp.incr(index));
_for.body()._if(regExps.component(index).invoke("matches").arg(value.invoke("toString")))._then().assignPlus(matches, JExpr.lit(1));
final JConditional ifNoMatches = block._if(JOp.eq(matches, JExpr.lit(0)));
ifNoMatches._then().assign(problem, JExpr._new(codeModel.ref(RegularExpressionsProblem.class)).arg(value).arg(patterns));

相关文章