本文整理汇总了Java中com.sun.tools.xjc.model.CElementInfo.getElementName方法的典型用法代码示例。如果您正苦于以下问题:Java CElementInfo.getElementName方法的具体用法?Java CElementInfo.getElementName怎么用?Java CElementInfo.getElementName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.sun.tools.xjc.model.CElementInfo
的用法示例。
在下文中一共展示了CElementInfo.getElementName方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: updateObjectFactoryElements
import com.sun.tools.xjc.model.CElementInfo; //导入方法依赖的package包/类
/**
* Marks ObjectFactory.createXYZ methods for elements with a:rawType annotation as @Raw.
*/
private void updateObjectFactoryElements(Outline outline) {
XSSchemaSet schemaSet = outline.getModel().schemaComponent;
for (CElementInfo elementInfo : outline.getModel().getAllElements()) {
QName name = elementInfo.getElementName();
XSComponent elementDecl;
if (elementInfo.getSchemaComponent() != null) { // it's strange but elements seem not to have this filled-in...
elementDecl = elementInfo.getSchemaComponent();
} else {
elementDecl = schemaSet.getElementDecl(name.getNamespaceURI(), name.getLocalPart());
}
boolean isRaw = hasAnnotation(elementDecl, A_RAW_TYPE);
if (isRaw) {
print("*** Raw element found: " + elementInfo.getElementName());
JDefinedClass objectFactory = outline.getPackageContext(elementInfo._package()).objectFactory();
boolean methodFound = false; // finding method corresponding to the given element
for (JMethod method : objectFactory.methods()) {
for (JAnnotationUse annotationUse : method.annotations()) {
if (XmlElementDecl.class.getName().equals(annotationUse.getAnnotationClass().fullName())) {
// ugly method of finding the string value of the annotation members (couldn't find any better)
JAnnotationValue namespaceValue = annotationUse.getAnnotationMembers().get("namespace");
StringWriter namespaceWriter = new StringWriter();
JFormatter namespaceFormatter = new JFormatter(namespaceWriter);
namespaceValue.generate(namespaceFormatter);
JAnnotationValue nameValue = annotationUse.getAnnotationMembers().get("name");
StringWriter nameWriter = new StringWriter();
JFormatter nameFormatter = new JFormatter(nameWriter);
nameValue.generate(nameFormatter);
if (("\""+name.getNamespaceURI()+"\"").equals(namespaceWriter.toString()) &&
("\""+name.getLocalPart()+"\"").equals(nameWriter.toString())) {
print("*** Annotating method as @Raw: " + method.name());
method.annotate(Raw.class);
methodFound = true;
break;
}
}
}
}
if (!methodFound) {
throw new IllegalStateException("No factory method found for element " + name);
}
}
}
}
示例2: wrap
import com.sun.tools.xjc.model.CElementInfo; //导入方法依赖的package包/类
@Override
protected JExpression wrap(JExpression target) {
final CReferencePropertyInfo referencePropertyInfo = (CReferencePropertyInfo) core;
final Collection<CElement> elements = referencePropertyInfo
.getElements();
final CElement element = elements.iterator().next();
final CElementInfo elementInfo = (CElementInfo) element.getType();
// final CNonElement type = elementInfo.getProperty().ref().iterator()
// .next();
final JClass scope = getScope(elementInfo.getScope());
final QName name = elementInfo.getElementName();
return codeModel.ref(JAXBContextUtils.class).staticInvoke(
"unmarshalJAXBElement").arg(contextPath).arg(
JExprUtils.newQName(codeModel, name)).arg(scope.dotclass())
.arg(target);
}