本文整理汇总了Java中com.sun.tools.internal.xjc.api.Reference类的典型用法代码示例。如果您正苦于以下问题:Java Reference类的具体用法?Java Reference怎么用?Java Reference使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Reference类属于com.sun.tools.internal.xjc.api包,在下文中一共展示了Reference类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: getSchemaGenerator
import com.sun.tools.internal.xjc.api.Reference; //导入依赖的package包/类
private synchronized XmlSchemaGenerator<TypeMirror, TypeElement, VariableElement, ExecutableElement> getSchemaGenerator() {
if(xsdgen==null) {
xsdgen = new XmlSchemaGenerator<TypeMirror, TypeElement, VariableElement, ExecutableElement>(types.getNavigator(), types);
for (Map.Entry<QName, Reference> e : additionalElementDecls.entrySet()) {
Reference value = e.getValue();
if(value!=null) {
NonElement<TypeMirror, TypeElement> typeInfo = refMap.get(value);
if(typeInfo==null)
throw new IllegalArgumentException(e.getValue()+" was not specified to JavaCompiler.bind");
TypeMirror type = value.type;
xsdgen.add(e.getKey(), !(type != null && type.getKind().isPrimitive()), typeInfo);
} else {
xsdgen.add(e.getKey(),false,null);
}
}
}
return xsdgen;
}
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:20,代码来源:JAXBModelImpl.java
示例2: getSchemaGenerator
import com.sun.tools.internal.xjc.api.Reference; //导入依赖的package包/类
private synchronized XmlSchemaGenerator<TypeMirror, TypeDeclaration, FieldDeclaration, MethodDeclaration> getSchemaGenerator() {
if(xsdgen==null) {
xsdgen = new XmlSchemaGenerator<TypeMirror,TypeDeclaration,FieldDeclaration,MethodDeclaration>( types.getNavigator(), types );
for (Map.Entry<QName, Reference> e : additionalElementDecls.entrySet()) {
Reference value = e.getValue();
if(value!=null) {
NonElement<TypeMirror, TypeDeclaration> typeInfo = refMap.get(value);
if(typeInfo==null)
throw new IllegalArgumentException(e.getValue()+" was not specified to JavaCompiler.bind");
xsdgen.add(e.getKey(),!(value.type instanceof PrimitiveType),typeInfo);
} else {
xsdgen.add(e.getKey(),false,null);
}
}
}
return xsdgen;
}
开发者ID:alexkasko,项目名称:openjdk-icedtea7,代码行数:19,代码来源:JAXBModelImpl.java
示例3: bind
import com.sun.tools.internal.xjc.api.Reference; //导入依赖的package包/类
public J2SJAXBModel bind(
Collection<Reference> rootClasses,
Map<QName,Reference> additionalElementDecls,
String defaultNamespaceRemap,
ProcessingEnvironment env) {
ModelBuilder<TypeMirror, TypeElement, VariableElement, ExecutableElement> builder =
new ModelBuilder<TypeMirror, TypeElement, VariableElement, ExecutableElement>(
InlineAnnotationReaderImpl.theInstance,
new ApNavigator(env),
Collections.<TypeElement, TypeElement>emptyMap(),
defaultNamespaceRemap );
builder.setErrorHandler(new ErrorHandlerImpl(env.getMessager()));
for ( Reference ref : rootClasses ) {
TypeMirror t = ref.type;
XmlJavaTypeAdapter xjta = ref.annotations.getAnnotation(XmlJavaTypeAdapter.class);
XmlList xl = ref.annotations.getAnnotation(XmlList.class);
builder.getTypeInfo(new Ref<TypeMirror, TypeElement>(builder, t, xjta, xl));
}
TypeInfoSet<TypeMirror, TypeElement, VariableElement, ExecutableElement> r = builder.link();
if(r==null) return null;
if(additionalElementDecls==null)
additionalElementDecls = Collections.emptyMap();
else {
// fool proof check
for (Map.Entry<QName, ? extends Reference> e : additionalElementDecls.entrySet()) {
if(e.getKey()==null)
throw new IllegalArgumentException("nulls in additionalElementDecls");
}
}
return new JAXBModelImpl(r, builder.reader, rootClasses, new HashMap<QName, Reference>(additionalElementDecls));
}
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:39,代码来源:JavaCompilerImpl.java
示例4: getXmlTypeName
import com.sun.tools.internal.xjc.api.Reference; //导入依赖的package包/类
public QName getXmlTypeName(Reference javaType) {
NonElement<TypeMirror, TypeElement> ti = refMap.get(javaType);
if(ti!=null)
return ti.getTypeName();
return null;
}
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:9,代码来源:JAXBModelImpl.java
示例5: getXmlType
import com.sun.tools.internal.xjc.api.Reference; //导入依赖的package包/类
private NonElement<TypeMirror, TypeElement> getXmlType(Reference r) {
if(r==null)
throw new IllegalArgumentException();
XmlJavaTypeAdapter xjta = r.annotations.getAnnotation(XmlJavaTypeAdapter.class);
XmlList xl = r.annotations.getAnnotation(XmlList.class);
Ref<TypeMirror, TypeElement> ref = new Ref<TypeMirror, TypeElement>(
reader,types.getNavigator(),r.type,xjta,xl);
return types.getTypeInfo(ref);
}
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:13,代码来源:JAXBModelImpl.java
示例6: filterClass
import com.sun.tools.internal.xjc.api.Reference; //导入依赖的package包/类
private void filterClass(List<Reference> classes, Collection<? extends Element> elements) {
for (Element element : elements) {
if (element.getKind().equals(ElementKind.CLASS) || element.getKind().equals(ElementKind.ENUM)) {
classes.add(new Reference((TypeElement) element, processingEnv));
filterClass(classes, ElementFilter.typesIn(element.getEnclosedElements()));
}
}
}
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:9,代码来源:SchemaGenerator.java
示例7: filterClass
import com.sun.tools.internal.xjc.api.Reference; //导入依赖的package包/类
/**
* Filter classes (note that enum is kind of class) from elements tree
* @param result list of found classes
* @param elements tree to be filtered
*/
private void filterClass(List<Reference> result, Collection<? extends Element> elements) {
for (Element element : elements) {
final ElementKind kind = element.getKind();
if (ElementKind.CLASS.equals(kind) || ElementKind.ENUM.equals(kind)) {
result.add(new Reference((TypeElement) element, processingEnv));
filterClass(result, ElementFilter.typesIn(element.getEnclosedElements()));
}
}
}
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:15,代码来源:SchemaGenerator.java
示例8: filterClass
import com.sun.tools.internal.xjc.api.Reference; //导入依赖的package包/类
private void filterClass(List<Reference> classes, Collection<? extends Element> elements) {
for (Element element : elements) {
if (element.getKind().equals(ElementKind.CLASS)) {
classes.add(new Reference((TypeElement) element, processingEnv));
filterClass(classes, ElementFilter.typesIn(element.getEnclosedElements()));
}
}
}
开发者ID:infobip,项目名称:infobip-open-jdk-8,代码行数:9,代码来源:SchemaGenerator.java
示例9: bind
import com.sun.tools.internal.xjc.api.Reference; //导入依赖的package包/类
public J2SJAXBModel bind(
Collection<Reference> rootClasses,
Map<QName,Reference> additionalElementDecls,
String defaultNamespaceRemap,
AnnotationProcessorEnvironment env) {
ModelBuilder<TypeMirror,TypeDeclaration,FieldDeclaration,MethodDeclaration> builder =
new ModelBuilder<TypeMirror,TypeDeclaration,FieldDeclaration,MethodDeclaration>(
InlineAnnotationReaderImpl.theInstance,
new APTNavigator(env),
Collections.<TypeDeclaration,TypeDeclaration>emptyMap(),
defaultNamespaceRemap );
builder.setErrorHandler(new ErrorHandlerImpl(env.getMessager()));
for( Reference ref : rootClasses ) {
TypeMirror t = ref.type;
XmlJavaTypeAdapter xjta = ref.annotations.getAnnotation(XmlJavaTypeAdapter.class);
XmlList xl = ref.annotations.getAnnotation(XmlList.class);
builder.getTypeInfo(new Ref<TypeMirror,TypeDeclaration>(builder,t,xjta,xl));
}
TypeInfoSet r = builder.link();
if(r==null) return null;
if(additionalElementDecls==null)
additionalElementDecls = Collections.emptyMap();
else {
// fool proof check
for (Map.Entry<QName, ? extends Reference> e : additionalElementDecls.entrySet()) {
if(e.getKey()==null)
throw new IllegalArgumentException("nulls in additionalElementDecls");
}
}
return new JAXBModelImpl(r,builder.reader,rootClasses,new HashMap(additionalElementDecls));
}
开发者ID:alexkasko,项目名称:openjdk-icedtea7,代码行数:39,代码来源:JavaCompilerImpl.java
示例10: getXmlTypeName
import com.sun.tools.internal.xjc.api.Reference; //导入依赖的package包/类
public QName getXmlTypeName(Reference javaType) {
NonElement<TypeMirror,TypeDeclaration> ti = refMap.get(javaType);
if(ti!=null)
return ti.getTypeName();
return null;
}
开发者ID:alexkasko,项目名称:openjdk-icedtea7,代码行数:9,代码来源:JAXBModelImpl.java
示例11: getXmlType
import com.sun.tools.internal.xjc.api.Reference; //导入依赖的package包/类
private NonElement<TypeMirror,TypeDeclaration> getXmlType(Reference r) {
if(r==null)
throw new IllegalArgumentException();
XmlJavaTypeAdapter xjta = r.annotations.getAnnotation(XmlJavaTypeAdapter.class);
XmlList xl = r.annotations.getAnnotation(XmlList.class);
Ref<TypeMirror, TypeDeclaration> ref = new Ref<TypeMirror, TypeDeclaration>(
reader,types.getNavigator(),r.type,xjta,xl);
return types.getTypeInfo(ref);
}
开发者ID:alexkasko,项目名称:openjdk-icedtea7,代码行数:13,代码来源:JAXBModelImpl.java
示例12: JAXBModelImpl
import com.sun.tools.internal.xjc.api.Reference; //导入依赖的package包/类
public JAXBModelImpl(TypeInfoSet<TypeMirror, TypeElement, VariableElement, ExecutableElement> types,
AnnotationReader<TypeMirror, TypeElement, VariableElement, ExecutableElement> reader,
Collection<Reference> rootClasses,
Map<QName, Reference> additionalElementDecls) {
this.types = types;
this.reader = reader;
this.additionalElementDecls = additionalElementDecls;
Navigator<TypeMirror, TypeElement, VariableElement, ExecutableElement> navigator = types.getNavigator();
for (ClassInfo<TypeMirror, TypeElement> i : types.beans().values()) {
classList.add(i.getName());
}
for (ArrayInfo<TypeMirror, TypeElement> a : types.arrays().values()) {
String javaName = navigator.getTypeName(a.getType());
classList.add(javaName);
}
for (EnumLeafInfo<TypeMirror, TypeElement> l : types.enums().values()) {
QName tn = l.getTypeName();
if(tn!=null) {
String javaName = navigator.getTypeName(l.getType());
classList.add(javaName);
}
}
for (Reference ref : rootClasses)
refMap.put(ref,getXmlType(ref));
// check for collision between "additional" ones and the ones given to JAXB
// and eliminate duplication
Iterator<Map.Entry<QName, Reference>> itr = additionalElementDecls.entrySet().iterator();
while(itr.hasNext()) {
Map.Entry<QName, Reference> entry = itr.next();
if(entry.getValue()==null) continue;
NonElement<TypeMirror, TypeElement> xt = getXmlType(entry.getValue());
assert xt!=null;
refMap.put(entry.getValue(),xt);
if(xt instanceof ClassInfo) {
ClassInfo<TypeMirror, TypeElement> xct = (ClassInfo<TypeMirror, TypeElement>) xt;
Element<TypeMirror, TypeElement> elem = xct.asElement();
if(elem!=null && elem.getElementName().equals(entry.getKey())) {
itr.remove();
continue;
}
}
ElementInfo<TypeMirror, TypeElement> ei = types.getElementInfo(null, entry.getKey());
if(ei!=null && ei.getContentType()==xt)
itr.remove();
}
}
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:55,代码来源:JAXBModelImpl.java
示例13: process
import com.sun.tools.internal.xjc.api.Reference; //导入依赖的package包/类
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
final ErrorReceiverImpl errorListener = new ErrorReceiverImpl(processingEnv);
List<Reference> classesToBeBound = new ArrayList<Reference>();
// simply ignore all the interface definitions,
// so that users won't have to manually exclude interfaces, which is silly.
filterClass(classesToBeBound, roundEnv.getRootElements());
J2SJAXBModel model = JXC.createJavaCompiler().bind(classesToBeBound, Collections.<QName, Reference>emptyMap(), null, processingEnv);
if (model == null)
return false; // error
try {
model.generateSchema(
new SchemaOutputResolver() {
public Result createOutput(String namespaceUri, String suggestedFileName) throws IOException {
File file;
OutputStream out;
if (schemaLocations.containsKey(namespaceUri)) {
file = schemaLocations.get(namespaceUri);
if (file == null) return null; // don't generate
out = new FileOutputStream(file);
} else {
// use the default
file = new File(suggestedFileName);
out = processingEnv.getFiler().createResource(StandardLocation.CLASS_OUTPUT, "", suggestedFileName)
.openOutputStream();
file = file.getAbsoluteFile();
}
StreamResult ss = new StreamResult(out);
processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE, "Writing "+file);
ss.setSystemId(file.toURL().toExternalForm());
return ss;
}
}, errorListener);
if (episodeFile != null) {
processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE, "Writing "+episodeFile);
model.generateEpisodeFile(new StreamResult(episodeFile));
}
} catch (IOException e) {
errorListener.error(e.getMessage(), e);
}
return false;
}
开发者ID:campolake,项目名称:openjdk9,代码行数:48,代码来源:SchemaGenerator.java
示例14: process
import com.sun.tools.internal.xjc.api.Reference; //导入依赖的package包/类
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
final ErrorReceiverImpl errorListener = new ErrorReceiverImpl(processingEnv);
List<Reference> classes = new ArrayList<Reference>();
// simply ignore all the interface definitions,
// so that users won't have to manually exclude interfaces, which is silly.
filterClass(classes, roundEnv.getRootElements());
J2SJAXBModel model = JXC.createJavaCompiler().bind(classes, Collections.<QName, Reference>emptyMap(), null, processingEnv);
if (model == null)
return false; // error
try {
model.generateSchema(
new SchemaOutputResolver() {
public Result createOutput(String namespaceUri, String suggestedFileName) throws IOException {
File file;
OutputStream out;
if (schemaLocations.containsKey(namespaceUri)) {
file = schemaLocations.get(namespaceUri);
if (file == null) return null; // don't generate
out = new FileOutputStream(file);
} else {
// use the default
file = new File(suggestedFileName);
out = processingEnv.getFiler().createResource(StandardLocation.CLASS_OUTPUT, "", suggestedFileName)
.openOutputStream();
file = file.getAbsoluteFile();
}
StreamResult ss = new StreamResult(out);
processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE, "Writing "+file);
ss.setSystemId(file.toURL().toExternalForm());
return ss;
}
}, errorListener);
if (episodeFile != null) {
processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE, "Writing "+episodeFile);
model.generateEpisodeFile(new StreamResult(episodeFile));
}
} catch (IOException e) {
errorListener.error(e.getMessage(), e);
}
return false;
}
开发者ID:ojdkbuild,项目名称:lookaside_java-1.8.0-openjdk,代码行数:48,代码来源:SchemaGenerator.java
注:本文中的com.sun.tools.internal.xjc.api.Reference类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论