com.sun.codemodel.JType类的使用及代码示例

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

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

JType介绍

[英]A representation of a type in codeModel. A type is always either primitive ( JPrimitiveType) or a reference type ( JClass).
[中]代码模型中类型的表示形式。类型始终是基元(JPrimitiveType)或引用类型(JClass)。

代码示例

代码示例来源:origin: joelittlejohn/jsonschema2pojo

fieldType = fieldType.unboxify();
if (fieldType.fullName().equals(String.class.getName())) {
  return JExpr.lit(node.asText());
} else if (fieldType.fullName().equals(int.class.getName())) {
  return JExpr.lit(Integer.parseInt(node.asText()));
} else if (fieldType.fullName().equals(BigInteger.class.getName())) {
  return JExpr._new(fieldType).arg(JExpr.lit(node.asText()));
} else if (fieldType.fullName().equals(double.class.getName())) {
  return JExpr.lit(Double.parseDouble(node.asText()));
} else if (fieldType.fullName().equals(BigDecimal.class.getName())) {
  return JExpr._new(fieldType).arg(JExpr.lit(node.asText()));
} else if (fieldType.fullName().equals(boolean.class.getName())) {
  return JExpr.lit(Boolean.parseBoolean(node.asText()));
} else if (fieldType.fullName().equals(DateTime.class.getName()) || fieldType.fullName().equals(Date.class.getName())) {
  long millisecs = parseDateToMillisecs(node.asText());
} else if (fieldType.fullName().equals(LocalDate.class.getName()) || fieldType.fullName().equals(LocalTime.class.getName())) {
} else if (fieldType.fullName().equals(long.class.getName())) {
  return JExpr.lit(Long.parseLong(node.asText()));
} else if (fieldType.fullName().equals(float.class.getName())) {

代码示例来源:origin: joelittlejohn/jsonschema2pojo

body._if(otherObject.eq(JExpr._this()))._then()._return(JExpr.TRUE);
body._if(otherObject._instanceof(jclass).eq(JExpr.FALSE))._then()._return(JExpr.FALSE);
JVar rhsVar = body.decl(jclass, "rhs").init(JExpr.cast(jclass, otherObject));
JExpression result = JExpr.lit(true);
if (!jclass._extends().fullName().equals(Object.class.getName())) {
  result = result.cand(JExpr._super().invoke("equals").arg(rhsVar));
  JExpression fieldEquals;
  if (fieldVar.type().isPrimitive()) {
    if ("double".equals(fieldVar.type().name())) {
      JClass doubleClass = jclass.owner().ref(Double.class);
      fieldEquals = doubleClass.staticInvoke("doubleToLongBits").arg(thisFieldRef).eq(
          doubleClass.staticInvoke("doubleToLongBits").arg(otherFieldRef));
    } else if ("float".equals(fieldVar.type().name())) {
      JClass floatClass = jclass.owner().ref(Float.class);
      fieldEquals = floatClass.staticInvoke("floatToIntBits").arg(thisFieldRef).eq(
          floatClass.staticInvoke("floatToIntBits").arg(otherFieldRef));
      fieldEquals = thisFieldRef.eq(otherFieldRef);
  } else if (fieldVar.type().isArray()) {
    if (!fieldVar.type().elementType().isPrimitive()) {
      throw new UnsupportedOperationException("Only primitive arrays are supported");

代码示例来源:origin: joelittlejohn/jsonschema2pojo

private JFieldVar addQuickLookupMap(JDefinedClass _enum, JType backingType) {
  JClass lookupType = _enum.owner().ref(Map.class).narrow(backingType.boxify(), _enum);
  JFieldVar lookupMap = _enum.field(JMod.PRIVATE | JMod.STATIC | JMod.FINAL, lookupType, "CONSTANTS");
  JClass lookupImplType = _enum.owner().ref(HashMap.class).narrow(backingType.boxify(), _enum);
  lookupMap.init(JExpr._new(lookupImplType));
  JForEach forEach = _enum.init().forEach(_enum, "c", JExpr.invoke("values"));
  JInvocation put = forEach.body().invoke(lookupMap, "put");
  put.arg(forEach.var().ref("value"));
  put.arg(forEach.var());
  return lookupMap;
}

代码示例来源:origin: joelittlejohn/jsonschema2pojo

private static JDefinedClass definedClassOrNullFromType(JType type)
{
  if (type == null || type.isPrimitive())
  {
    return null;
  }
  JClass fieldClass = type.boxify();
  JPackage jPackage = fieldClass._package();
  return jPackage._getClass(fieldClass.name());
}

代码示例来源:origin: joelittlejohn/jsonschema2pojo

@Override
public void propertyField(JFieldVar field, JDefinedClass clazz, String propertyName, JsonNode propertyNode) {
  field.annotate(JsonProperty.class).param("value", propertyName);
  if (field.type().erasure().equals(field.type().owner().ref(Set.class))) {
    field.annotate(JsonDeserialize.class).param("as", LinkedHashSet.class);
  }
  if (propertyNode.has("javaJsonView")) {
    field.annotate(JsonView.class).param(
        "value", field.type().owner().ref(propertyNode.get("javaJsonView").asText()));
  }
}

代码示例来源:origin: sun-jaxb/jaxb-xjc

public void toRawValue(JBlock block, JVar $var) {
  // [RESULT]
  // $<var>.addAll(bean.getLIST());
  // list.toArray( array );
  block.assign($var,JExpr._new(codeModel.ref(ArrayList.class).narrow(exposedType.boxify())).arg(
    $target.invoke($get)
  ));
}

代码示例来源:origin: joelittlejohn/jsonschema2pojo

JClass stringBuilderClass = jclass.owner().ref(StringBuilder.class);
JVar sb = body.decl(stringBuilderClass, "sb", JExpr._new(stringBuilderClass));
body.add(sb
    .invoke("append").arg(jclass.dotclass().invoke("getName"))
    .invoke("append").arg(JExpr.lit('@'))
    .invoke("append").arg(
        jclass.owner().ref(Integer.class).staticInvoke("toHexString").arg(
            jclass.owner().ref(System.class).staticInvoke("identityHashCode").arg(JExpr._this())))
    .invoke("append").arg(JExpr.lit('[')));
if (!jclass._extends().fullName().equals(Object.class.getName())) {
  JVar baseLength = body.decl(jclass.owner().INT, "baseLength", sb.invoke("length"));
  JVar superString = body.decl(jclass.owner().ref(String.class), "superString", JExpr._super().invoke("toString"));
  body.add(sb.invoke("append").arg(JExpr.lit('=')));
  if (fieldVar.type().isPrimitive()) {
    body.add(sb.invoke("append").arg(JExpr.refthis(fieldVar.name())));
  } else if (fieldVar.type().isArray()) {
    if (!fieldVar.type().elementType().isPrimitive()) {
      throw new UnsupportedOperationException("Only primitive arrays are supported");

代码示例来源:origin: joelittlejohn/jsonschema2pojo

JVar result = body.decl(jclass.owner().INT, "result", JExpr.lit(1));
  JFieldRef fieldRef = JExpr.refthis(fieldVar.name());
  if (fieldVar.type().isPrimitive()) {
    if ("long".equals(fieldVar.type().name())) {
      fieldHash = JExpr.cast(jclass.owner().INT, fieldRef.xor(fieldRef.shrz(JExpr.lit(32))));
    } else if ("boolean".equals(fieldVar.type().name())) {
      fieldHash = JOp.cond(fieldRef, JExpr.lit(1), JExpr.lit(0));
    } else if ("int".equals(fieldVar.type().name())) {
      fieldHash = fieldRef;
    } else if ("double".equals(fieldVar.type().name())) {
      JClass doubleClass = jclass.owner().ref(Double.class);
      JExpression longField = doubleClass.staticInvoke("doubleToLongBits").arg(fieldRef);
      fieldHash = JExpr.cast(jclass.owner().INT,
          longField.xor(longField.shrz(JExpr.lit(32))));
    } else if ("float".equals(fieldVar.type().name())) {
      fieldHash = jclass.owner().ref(Float.class).staticInvoke("floatToIntBits").arg(fieldRef);
    } else {
      fieldHash = JExpr.cast(jclass.owner().INT, fieldRef);
  } else if (fieldVar.type().isArray()) {
    if (!fieldVar.type().elementType().isPrimitive()) {
      throw new UnsupportedOperationException("Only primitive arrays are supported");
  body.assign(result, result.mul(JExpr.lit(31)).plus(fieldHash));

代码示例来源: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: joelittlejohn/jsonschema2pojo

JClass setGenericType = ((JClass) fieldType).getTypeParameters().get(0);
JClass setImplClass = fieldType.owner().ref(LinkedHashSet.class);
setImplClass = setImplClass.narrow(setGenericType);
JInvocation newSetImpl = JExpr._new(setImplClass);
  JInvocation invokeAsList = fieldType.owner().ref(Arrays.class).staticInvoke("asList");
  for (JsonNode defaultValue : node) {
    invokeAsList.arg(getDefaultValue(setGenericType, defaultValue));
  newSetImpl.arg(invokeAsList);
} else if (!ruleFactory.getGenerationConfig().isInitializeCollections()) {
  return JExpr._null();

代码示例来源:origin: joelittlejohn/jsonschema2pojo

public void addConstructorFromParcel(JDefinedClass jclass) {
  JMethod ctorFromParcel = jclass.constructor(JMod.PROTECTED);
  JVar in = ctorFromParcel.param(jclass.owner().directClass("android.os.Parcel"), "in");
  if (extendsParcelable(jclass)) {
    ctorFromParcel.body().directStatement("super(in);");
  }
  for (JFieldVar f : jclass.fields().values()) {
    if( (f.mods().getValue() & JMod.STATIC) == JMod.STATIC ) {
      continue;
    }
    if (f.type().erasure().name().equals("List")) {
      ctorFromParcel.body()
          .invoke(in, "readList")
          .arg(JExpr._this().ref(f))
          .arg(JExpr.direct(getListType(f.type()) + ".class.getClassLoader()"));
     } else {
      ctorFromParcel.body().assign(
          JExpr._this().ref(f),
          JExpr.cast(
              f.type(),
              in.invoke("readValue").arg(JExpr.direct(f.type().erasure().name() + ".class.getClassLoader()"))
          )
      );
    }
  }
}

代码示例来源:origin: com.sun.xml.ws/jaxws-tools

public JavaType getResponseBeanJavaType(){
  JCodeModel cm = _responseBean.getJavaType().getType().getType().owner();
  if(_asyncOpType.equals(AsyncOperationType.CALLBACK)){
    JClass future = cm.ref(java.util.concurrent.Future.class).narrow(cm.ref(Object.class).wildcard());
    return new JavaSimpleType(new JAXBTypeAndAnnotation(future));
  }else if(_asyncOpType.equals(AsyncOperationType.POLLING)){
    JClass polling = cm.ref(javax.xml.ws.Response.class).narrow(_responseBean.getJavaType().getType().getType().boxify());
    return new JavaSimpleType(new JAXBTypeAndAnnotation(polling));
  }
  return null;
}

代码示例来源:origin: joelittlejohn/jsonschema2pojo

private JInvocation illegalArgumentInvocation(JDefinedClass jclass, String propertyName, JType propertyType, JVar valueVar) {
  return _new(jclass.owner()._ref(IllegalArgumentException.class))
      .arg(lit("property \"" + propertyName + "\" is of type \"" + propertyType.fullName() + "\", but got ")
          .plus(valueVar.invoke("getClass").invoke("toString")));
}

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

private void addFieldWrite(Attribute attribute, JBlock body) {
  if ( attribute.attribute.type().isArray() ) {
    body.staticInvoke(cm.ref("AMQPArray"), "write").arg(_this().ref(attribute.attribute.name())).arg(ref("out"));
  } else if ( generator.getMapping().get(attribute.type) != null ) {
    body.staticInvoke(cm.ref(generator.getPrimitiveJavaClass().get(attribute.type)), "write").arg(_this().ref(attribute.attribute.name())).arg(ref("out"));
  } else {
    JConditional conditional = body
        ._if(ref(attribute.attribute.name()).ne(_null()));
    conditional._then()
        .invoke(ref(attribute.attribute.name()), "write").arg(ref("out"));
    conditional._else().invoke(ref("out"), "writeByte").arg(generator.registry().cls().staticRef("NULL_FORMAT_CODE"));
  }
}

代码示例来源:origin: dremio/dremio-oss

private List<Partitioner> createClassInstances(int actualPartitions) throws SchemaChangeException {
 // set up partitioning function
 final LogicalExpression expr = config.getExpr();
 final ClassGenerator<Partitioner> cg = context.getClassProducer().createGenerator(Partitioner.TEMPLATE_DEFINITION).getRoot();
 ClassGenerator<Partitioner> cgInner = cg.getInnerGenerator("OutgoingRecordBatch");
 final LogicalExpression materializedExpr = context.getClassProducer().materialize(expr, incoming);
 // generate code to copy from an incoming value vector to the destination partition's outgoing value vector
 JExpression bucket = JExpr.direct("bucket");
 // generate evaluate expression to determine the hash
 ClassGenerator.HoldingContainer exprHolder = cg.addExpr(materializedExpr);
 cg.getEvalBlock().decl(JType.parse(cg.getModel(), "int"), "bucket", exprHolder.getValue().mod(JExpr.lit(outGoingBatchCount)));
 cg.getEvalBlock()._return(cg.getModel().ref(Math.class).staticInvoke("abs").arg(bucket));
 CopyUtil.generateCopies(cgInner, incoming, incoming.getSchema().getSelectionVectorMode() == SelectionVectorMode.FOUR_BYTE);
 // compile and setup generated code
 List<Partitioner> subPartitioners = cg.getCodeGenerator().getImplementationClass(actualPartitions);
 return subPartitioners;
}

代码示例来源:origin: joelittlejohn/jsonschema2pojo

private void addSetProperty(JDefinedClass jclass, JBlock callSite, String propertyName, JType propertyType, JVar valueVar, JsonNode node) {
  JMethod propertySetter = jclass.getMethod(getSetterName(propertyName, node), new JType[] { propertyType });
  JConditional isInstance = callSite._if(valueVar._instanceof(propertyType.boxify().erasure()));
  isInstance._then()
  .invoke(propertySetter).arg(cast(propertyType.boxify(), valueVar));
  isInstance._else()
  ._throw(illegalArgumentInvocation(jclass, propertyName, propertyType, valueVar));
}

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

private void addFieldRead(Attribute attribute, JBlock body) {
  if ( attribute.attribute.type().isArray() ) {
    body.assign(attribute.attribute, cast(attribute.attribute.type(), cm.ref("AMQPArray").staticInvoke("read").arg(ref("in"))));
  } else if ( generator.getMapping().get(attribute.type) != null ) {
    body.assign(attribute.attribute, cm.ref(generator.getPrimitiveJavaClass().get(attribute.type)).staticInvoke("read").arg(ref("in")));
  } else if ( generator.getProvides().contains(attribute.type) ) {
  } else {
    //body.assign(attribute.attribute, cast(attribute.attribute.type(), cm.ref(generator.getMarshaller() + ".TypeReader").staticInvoke("read").arg(ref("in"))));
    body.assign(attribute.attribute, cast(attribute.attribute.type(), cm.ref(generator.getMarshaller() + ".TypeReader").staticInvoke("read").arg(ref("in"))));
  }
}

代码示例来源:origin: sabomichal/immutable-xjc

private JMethod addWithIfNotNullMethod(JDefinedClass builderClass, FieldOutline field, JMethod unconditionalWithMethod) {
  if (field.getRawType().isPrimitive())
   return null;
  String fieldName = field.getPropertyInfo().getName(true);
  JMethod method = builderClass.method(JMod.PUBLIC, builderClass, "with" + fieldName + "IfNotNull");
  JVar param = generateMethodParameter(method, field);
  JBlock block = method.body();
  JConditional conditional = block._if(param.eq(JExpr._null()));
  conditional._then()._return(JExpr.direct("this"));
  conditional._else()._return(JExpr.invoke(unconditionalWithMethod).arg(param));
  return method;
}

代码示例来源:origin: joelittlejohn/jsonschema2pojo

private JFieldVar addAdditionalPropertiesField(JDefinedClass jclass, JType propertyType) {
  JClass propertiesMapType = jclass.owner().ref(Map.class);
  propertiesMapType = propertiesMapType.narrow(jclass.owner().ref(String.class), propertyType.boxify());
  JClass propertiesMapImplType = jclass.owner().ref(HashMap.class);
  propertiesMapImplType = propertiesMapImplType.narrow(jclass.owner().ref(String.class), propertyType.boxify());
  JFieldVar field = jclass.field(JMod.PRIVATE, propertiesMapType, "additionalProperties");
  ruleFactory.getAnnotator().additionalPropertiesField(field, jclass, "additionalProperties");
  field.init(JExpr._new(propertiesMapImplType));
  return field;
}

代码示例来源:origin: com.googlecode.androidannotations/androidannotations

public void callSuperMethod(JMethod superMethod, EBeanHolder holder, JBlock callBlock) {
  JExpression activitySuper = holder.generatedClass.staticRef("super");
  JInvocation superCall = JExpr.invoke(activitySuper, superMethod);
  for (JVar param : superMethod.params()) {
    superCall.arg(param);
  }
  JType returnType = superMethod.type();
  if (returnType.fullName().equals("void")) {
    callBlock.add(superCall);
  } else {
    callBlock._return(superCall);
  }
}

相关文章