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

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

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

JClass.narrow介绍

[英]"Narrows" a generic class to a concrete class by specifying a type argument.

.narrow(X) builds Set from Set.
[中]通过指定类型参数,将泛型类“缩小”为具体类。
.从集合中缩小(X)构建集合。

代码示例

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

itemType = ruleFactory.getSchemaRule().apply(makeSingular(nodeName), node.get("items"), node, jpackage, schema);
} else {
  itemType = jpackage.owner().ref(Object.class);
  arrayType = jpackage.owner().ref(Set.class).narrow(itemType);
} else {
  arrayType = jpackage.owner().ref(List.class).narrow(itemType);

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

private JType getReturnType(final JDefinedClass c, final JFieldVar field, final boolean required, final boolean usesOptional) {
  JType returnType = field.type();
  if (ruleFactory.getGenerationConfig().isUseOptionalForGetters() || usesOptional) {
    if (!required && field.type().isReference()) {
      returnType = c.owner().ref("java.util.Optional").narrow(field.type());
    }
  }
  return returnType;
}

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

JClass listImplClass = fieldType.owner().ref(ArrayList.class);
listImplClass = listImplClass.narrow(listGenericType);
  JInvocation invokeAsList = fieldType.owner().ref(Arrays.class).staticInvoke("asList");
  for (JsonNode defaultValue : node) {
    invokeAsList.arg(getDefaultValue(listGenericType, defaultValue));

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

JClass setImplClass = fieldType.owner().ref(LinkedHashSet.class);
setImplClass = setImplClass.narrow(setGenericType);
  JInvocation invokeAsList = fieldType.owner().ref(Arrays.class).staticInvoke("asList");
  for (JsonNode defaultValue : node) {
    invokeAsList.arg(getDefaultValue(setGenericType, defaultValue));

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

private static JClass buildClass(JClassContainer _package, ClassOrInterfaceType c, int arrayCount) {
  final String packagePrefix = (c.getScope() != null) ? c.getScope().toString() + "." : "";
  JClass _class = _package.owner().ref(packagePrefix + c.getName());
          resolvedClass = buildClass(_package, (ClassOrInterfaceType) wildcardType.getExtends().getType(), 0).wildcard();
        } else {
          resolvedClass = _package.owner().ref(Object.class).wildcard();
    _class = _class.narrow(genericArgumentClasses);

代码示例来源:origin: javaee/glassfish

/**
 * Figure out the concrete implementation class to be used.
 */
JType implType() {
  if(cm.ref(Set.class).isAssignableFrom(collectionType))
    return cm.ref(HashSet.class).narrow(itemType);
  return cm.ref(ArrayList.class).narrow(itemType);
}

代码示例来源:origin: javaee/glassfish

targetType = cm.ref(name);
  injector._extends(cm.ref(NoopConfigInjector.class));
  injectAttributeMethod = null;
  injectMethod = null;
  injectElementMethod = null;
} else {
  injector._extends(cm.ref(ConfigInjector.class).narrow(targetType));

代码示例来源:origin: javaee/glassfish

protected void generate() {
  conv = createConverter(itemType);
  conv.addMetadata(xmlTokenName(),itemType);
  if(!isVariableExpansion() && toJtype.visit(itemType,null)!=cm.ref(String.class))
    printError("variableExpansion=false is only allowed on String", p.decl());
  if(!generateNoopConfigInjector) {
    JVar value = var(
      packer!=null ? cm.ref(List.class).narrow(conv.sourceType()) : conv.sourceType(),getXmlValue());
    if(!isRequired())
      body._if(value.eq(JExpr._null()))._then()._return();
    if(packer!=null)
      handleMultiValue(value);
    else
      assign(conv.as(value,itemType));
  }
  if(p.isKey())
    addKey();
}

代码示例来源:origin: com.cloudbees/groovy-cps-dgm-builder

@Override
public JType visitDeclared(DeclaredType t, Void __) {
  String name = n(((TypeElement) t.asElement()).getQualifiedName());
  if (name.isEmpty())
    throw new UnsupportedOperationException("Anonymous class: "+t);
  JClass base = codeModel.ref(name);
  if (t.getTypeArguments().isEmpty())
    return base;
  List<JClass> typeArgs = new ArrayList<>();
  t.getTypeArguments().forEach(a -> typeArgs.add((JClass) t(a, typeVars)));
  return base.narrow(typeArgs);
}

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

public JClass narrow( Class... clazz ) {
  JClass[] r = new JClass[clazz.length];
  for( int i=0; i<clazz.length; i++ )
    r[i] = owner().ref(clazz[i]);
  return narrow(r);
}

代码示例来源:origin: org.glassfish.metro/webservices-tools

public JClass narrow( Class<?>... clazz ) {
  JClass[] r = new JClass[clazz.length];
  for( int i=0; i<clazz.length; i++ )
    r[i] = owner().ref(clazz[i]);
  return narrow(r);
}

代码示例来源:origin: com.unquietcode.tools.jcodemodel/codemodel

public JClass narrow( Class<?>... clazz ) {
  JClass[] r = new JClass[clazz.length];
  for( int i=0; i<clazz.length; i++ )
    r[i] = owner().ref(clazz[i]);
  return narrow(r);
}

代码示例来源:origin: com.sun.codemodel/codemodel

/**
 * "Narrows" a generic class to a concrete class by specifying
 * a type argument.
 * 
 * <p>
 * <code>.narrow(X)</code> builds <code>Set&lt;X></code> from <code>Set</code>.
 */
public JClass narrow( Class<?> clazz ) {
  return narrow(owner().ref(clazz));
}

代码示例来源:origin: com.sun.codemodel/codemodel

public JClass narrow( Class<?>... clazz ) {
  JClass[] r = new JClass[clazz.length];
  for( int i=0; i<clazz.length; i++ )
    r[i] = owner().ref(clazz[i]);
  return narrow(r);
}

代码示例来源:origin: com.cedarsoft.serialization.generator/stax-mate

@Nonnull
@Override
public JClass generateFieldType( @Nonnull FieldDeclarationInfo fieldInfo ) {
 JClass collectionType = codeGenerator.ref( fieldInfo.getCollectionParam().toString() );
 JClass list = codeGenerator.getModel().ref( List.class );
 return list.narrow( collectionType.wildcard() );
}

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

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: org.jvnet.hyperjaxb3/hyperjaxb3-ejb-plugin

@Override
protected JExpression unwrap(JExpression source) {
  return codeModel.ref(JAXBElementUtils.class).staticInvoke("getValue")
      .arg(
          JExpr.cast(codeModel.ref(JAXBElement.class).narrow(
              type.toType(outline.parent(), Aspect.EXPOSED)
                  .boxify()), source));
}

代码示例来源:origin: org.jvnet.hyperjaxb3/hyperjaxb3-ejb-plugin

@Override
protected JExpression unwrap(JExpression source) {
  return codeModel.ref(JAXBElementUtils.class).staticInvoke("getName")
      .arg(
          JExpr.cast(codeModel.ref(JAXBElement.class).narrow(
              elementType.toType(outline.parent(),
                  Aspect.EXPOSED).boxify()), source));
}

相关文章