当前位置: 首页>>代码示例>>Java>>正文


Java CElementInfo.getElementName方法代码示例

本文整理汇总了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);
            }
        }
    }
}
 
开发者ID:Pardus-Engerek,项目名称:engerek,代码行数:49,代码来源:SchemaProcessor.java

示例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);
	}
 
开发者ID:highsource,项目名称:hyperjaxb3,代码行数:25,代码来源:SingleMarshallingReferenceField.java


注:本文中的com.sun.tools.xjc.model.CElementInfo.getElementName方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。