本文整理了Java中com.sun.codemodel.JClass.narrow()
方法的一些代码示例,展示了JClass.narrow()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。JClass.narrow()
方法的具体详情如下:
包路径:com.sun.codemodel.JClass
类名称: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<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));
}
内容来源于网络,如有侵权,请联系作者删除!