• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java JAnnotatable类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中com.sun.codemodel.JAnnotatable的典型用法代码示例。如果您正苦于以下问题:Java JAnnotatable类的具体用法?Java JAnnotatable怎么用?Java JAnnotatable使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



JAnnotatable类属于com.sun.codemodel包,在下文中一共展示了JAnnotatable类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: annotate

import com.sun.codemodel.JAnnotatable; //导入依赖的package包/类
/**
 * Annotate the field according to the recipes given as {@link CPropertyInfo}.
 */
protected void annotate( JAnnotatable field ) {

    assert(field!=null);

    if (prop instanceof CAttributePropertyInfo) {
        annotateAttribute(field);
    } else if (prop instanceof CElementPropertyInfo) {
        annotateElement(field);
    } else if (prop instanceof CValuePropertyInfo) {
        field.annotate(XmlValue.class);
    } else if (prop instanceof CReferencePropertyInfo) {
        annotateReference(field);
    }

    outline.parent().generateAdapterIfNecessary(prop,field);
}
 
开发者ID:highsource,项目名称:hyperjaxb3,代码行数:20,代码来源:AbstractField.java


示例2: setDeprecatedAnnotationAndJavadoc

import com.sun.codemodel.JAnnotatable; //导入依赖的package包/类
private void setDeprecatedAnnotationAndJavadoc(Object deprecatedProp,
                                               JAnnotatable annotatable,
                                               JDocCommentable commentable)
{
  if (Boolean.TRUE.equals(deprecatedProp) && annotatable != null)
  {
    annotatable.annotate(Deprecated.class);
  }
  else if (deprecatedProp instanceof String)
  {
    if (commentable != null)
    {
      String deprecatedReason = (String)deprecatedProp;
      commentable.javadoc().addDeprecated().append(deprecatedReason);
    }
    if (annotatable != null)
    {
      annotatable.annotate(Deprecated.class);
    }
  }
}
 
开发者ID:ppdai,项目名称:rest4j,代码行数:22,代码来源:DataTemplateGenerator.java


示例3: annotate

import com.sun.codemodel.JAnnotatable; //导入依赖的package包/类
public void annotate(JCodeModel codeModel, JAnnotatable annotatable,
		XAnnotation<?> xannotation) {
	final JClass annotationClass = codeModel.ref(xannotation
			.getAnnotationClass());
	JAnnotationUse annotationUse = null;
	for (JAnnotationUse annotation : annotatable.annotations()) {
		if (annotationClass.equals(annotation.getAnnotationClass())) {
			annotationUse = annotation;
		}
	}
	if (annotationUse == null) {
		annotationUse = annotatable.annotate(annotationClass);
	}
	final XAnnotationFieldVisitor<?> visitor = createAnnotationFieldVisitor(
			codeModel, annotationUse);
	for (XAnnotationField<?> field : xannotation.getFieldsList()) {
		field.accept(visitor);
	}
}
 
开发者ID:highsource,项目名称:jaxb2-annotate-plugin,代码行数:20,代码来源:Annotator.java


示例4: annotateElementOutline

import com.sun.codemodel.JAnnotatable; //导入依赖的package包/类
protected void annotateElementOutline(final JCodeModel codeModel,
		final ElementOutline elementOutline,
		final CCustomizations customizations,
		final ErrorHandler errorHandler) {
	for (final CPluginCustomization customization : customizations) {
		final Element element = customization.element;
		final QName name = new QName(element.getNamespaceURI(),
				element.getLocalName());
		if (Constants.NAMESPACE_URI.equals(name.getNamespaceURI())) {
			customization.markAsAcknowledged();
			final AnnotationTarget annotationTarget = AnnotationTarget
					.getAnnotationTarget(element, AnnotationTarget.ELEMENT);
			try {
				final JAnnotatable annotatable = annotationTarget
						.getAnnotatable(elementOutline.parent(),
								elementOutline);
				annotate(codeModel, errorHandler, customization, element,
						annotatable);
			} catch (IllegalArgumentException iaex) {
				logger.error("Error applying the annotation.", iaex);
			}
		}
	}
}
 
开发者ID:highsource,项目名称:jaxb2-annotate-plugin,代码行数:25,代码来源:AnnotatePlugin.java


示例5: annotateEnumOutline

import com.sun.codemodel.JAnnotatable; //导入依赖的package包/类
protected void annotateEnumOutline(final JCodeModel codeModel,
		final EnumOutline enumOutline,
		final CCustomizations customizations,
		final ErrorHandler errorHandler) {
	for (final CPluginCustomization customization : customizations) {
		final Element element = customization.element;
		final QName name = new QName(element.getNamespaceURI(),
				element.getLocalName());
		if (Constants.NAMESPACE_URI.equals(name.getNamespaceURI())) {
			customization.markAsAcknowledged();
			final AnnotationTarget annotationTarget = AnnotationTarget
					.getAnnotationTarget(element, AnnotationTarget.ENUM);
			try {
				final JAnnotatable annotatable = annotationTarget
						.getAnnotatable(enumOutline.parent(), enumOutline);
				annotate(codeModel, errorHandler, customization, element,
						annotatable);
			} catch (IllegalArgumentException iaex) {
				logger.error("Error applying the annotation.", iaex);
			}
		}
	}
}
 
开发者ID:highsource,项目名称:jaxb2-annotate-plugin,代码行数:24,代码来源:AnnotatePlugin.java


示例6: annotateEnumConstantOutline

import com.sun.codemodel.JAnnotatable; //导入依赖的package包/类
protected void annotateEnumConstantOutline(final JCodeModel codeModel,
		final Outline outline,
		final EnumConstantOutline enumConstantOutline,
		final CCustomizations customizations,
		final ErrorHandler errorHandler) {
	for (final CPluginCustomization customization : customizations) {
		final Element element = customization.element;
		final QName name = new QName(element.getNamespaceURI(),
				element.getLocalName());
		if (Constants.NAMESPACE_URI.equals(name.getNamespaceURI())) {
			customization.markAsAcknowledged();
			final AnnotationTarget annotationTarget = AnnotationTarget
					.getAnnotationTarget(element,
							AnnotationTarget.ENUM_CONSTANT);
			try {
				final JAnnotatable annotatable = annotationTarget
						.getAnnotatable(outline, enumConstantOutline);
				annotate(codeModel, errorHandler, customization, element,
						annotatable);
			} catch (IllegalArgumentException iaex) {
				logger.error("Error applying the annotation.", iaex);
			}

		}
	}
}
 
开发者ID:highsource,项目名称:jaxb2-annotate-plugin,代码行数:27,代码来源:AnnotatePlugin.java


示例7: annotateClassOutline

import com.sun.codemodel.JAnnotatable; //导入依赖的package包/类
protected void annotateClassOutline(final JCodeModel codeModel,
		final ClassOutline classOutline,
		final CCustomizations customizations, ErrorHandler errorHandler) {
	for (final CPluginCustomization customization : customizations) {
		final Element element = customization.element;
		final QName name = new QName(element.getNamespaceURI(),
				element.getLocalName());
		if (Constants.NAMESPACE_URI.equals(name.getNamespaceURI())) {
			customization.markAsAcknowledged();
			final AnnotationTarget annotationTarget = AnnotationTarget
					.getAnnotationTarget(element, AnnotationTarget.CLASS);
			try {
				final JAnnotatable annotatable = annotationTarget
						.getAnnotatable(classOutline.parent(), classOutline);
				annotate(codeModel, errorHandler, customization, element,
						annotatable);
			} catch (IllegalArgumentException iaex) {
				logger.error("Error applying the annotation.", iaex);
			}
		}
	}
}
 
开发者ID:highsource,项目名称:jaxb2-annotate-plugin,代码行数:23,代码来源:AnnotatePlugin.java


示例8: annotate

import com.sun.codemodel.JAnnotatable; //导入依赖的package包/类
protected void annotate(final JAnnotatable annotatable, final Iterable<Annotation> annotationConfigurations)
    throws CreationException {
  ensureThatArgument(annotatable, notNull());
  ensureThatArgument(annotationConfigurations, notNull());
  for (final Annotation annotationConfiguration : annotationConfigurations) {
    annotate(annotatable, annotationConfiguration);
  }
}
 
开发者ID:AndreasWBartels,项目名称:libraries,代码行数:9,代码来源:AbstractSourceFactory.java


示例9: addHttpMethodAnnotation

import com.sun.codemodel.JAnnotatable; //导入依赖的package包/类
/**
 * <p>addHttpMethodAnnotation.</p>
 *
 * @param httpMethod a {@link java.lang.String} object.
 * @param annotatable a {@link com.sun.codemodel.JAnnotatable} object.
 * @return a {@link org.raml.jaxrs.codegen.core.Context} object.
 * @throws java.lang.Exception if any.
 */
@SuppressWarnings("unchecked")
public Context addHttpMethodAnnotation(final String httpMethod, final JAnnotatable annotatable)
    throws Exception
{
    final Object annotationClass = httpMethodAnnotations.get(httpMethod.toUpperCase());
    if (annotationClass == null)
    {
        final JDefinedClass annotationClazz = createCustomHttpMethodAnnotation(httpMethod);
        annotatable.annotate(annotationClazz);
    }
    else if (annotationClass instanceof JClass)
    {
        annotatable.annotate((JClass) annotationClass);
    }
    else if (annotationClass instanceof Class)
    {
        annotatable.annotate((Class<? extends Annotation>) annotationClass);
    }
    else
    {
        throw new IllegalStateException("Found annotation: " + annotationClass + " for HTTP method: "
                                        + httpMethod);
    }

    return this;
}
 
开发者ID:OnPositive,项目名称:aml,代码行数:35,代码来源:Context.java


示例10: processConfig

import com.sun.codemodel.JAnnotatable; //导入依赖的package包/类
protected void processConfig(AnnotationGenerationInfo annotationGenerationInfo, ISimpleFacet si,
		PropertyCustomizerParameters cp) {
	JAnnotatable annotable = cp.getter;
	JAnnotationUse use = null;
	for (JAnnotationUse u : annotable.annotations()) {
		if (u.getAnnotationClass().fullName().equals(annotationGenerationInfo.annotationClassName)) {
			use = u;
			break;
		}
	}
	if (use == null) {
		use = annotable.annotate(writer.getModel().ref(annotationGenerationInfo.annotationClassName));
	}
	writer.addParam(use, si.value(), annotationGenerationInfo.annotationMemberName);
}
 
开发者ID:OnPositive,项目名称:aml,代码行数:16,代码来源:FacetProcessingConfig.java


示例11: addHttpMethodAnnotation

import com.sun.codemodel.JAnnotatable; //导入依赖的package包/类
private void addHttpMethodAnnotation(final String httpMethod, final JAnnotatable annotatable) {
    Class<? extends Annotation> annotationClass = httpMethodAnnotations
        .get(httpMethod.toUpperCase());
    if (annotationClass == null) {
        throw new IllegalArgumentException("unsupported HTTP method: " + httpMethod);
    }
    annotatable.annotate(annotationClass);
}
 
开发者ID:ops4j,项目名称:org.ops4j.ramler,代码行数:9,代码来源:ResourceGeneratingApiVisitor.java


示例12: getXew

import com.sun.codemodel.JAnnotatable; //导入依赖的package包/类
private XmlElementWriter getXew(boolean checkWrapper, JAnnotatable field) {
    XmlElementWriter xew;
    if(checkWrapper) {
        if(xesw==null) {
            xesw = field.annotate2(XmlElementsWriter.class);
        }
        xew = xesw.value();
    } else {
        xew = field.annotate2(XmlElementWriter.class);
    }
    return xew;
}
 
开发者ID:highsource,项目名称:hyperjaxb3,代码行数:13,代码来源:AbstractField.java


示例13: annotateAttribute

import com.sun.codemodel.JAnnotatable; //导入依赖的package包/类
/**
 * Annotate the attribute property 'field'
 */
private void annotateAttribute(JAnnotatable field) {
    CAttributePropertyInfo ap = (CAttributePropertyInfo) prop;
    QName attName = ap.getXmlName();

    // [RESULT]
    // @XmlAttribute(name="foo", required=true, namespace="bar://baz")
    XmlAttributeWriter xaw = field.annotate2(XmlAttributeWriter.class);

    final String generatedName = attName.getLocalPart();
    final String generatedNS = attName.getNamespaceURI();

    // generate name property?
    if(!generatedName.equals(ap.getName(false))) {
        xaw.name(generatedName);
    }

    // generate namespace property?
    if(!generatedNS.equals("")) { // assume attributeFormDefault == unqualified
        xaw.namespace(generatedNS);
    }

    // generate required property?
    if(ap.isRequired()) {
        xaw.required(true);
    }
}
 
开发者ID:highsource,项目名称:hyperjaxb3,代码行数:30,代码来源:AbstractField.java


示例14: annotate

import com.sun.codemodel.JAnnotatable; //导入依赖的package包/类
protected void annotate(final JCodeModel codeModel,
		final FieldOutline fieldOutline,
		final CCustomizations customizations, ErrorHandler errorHandler) {
	for (final CPluginCustomization customization : customizations) {
		final Element element = customization.element;
		final QName name = new QName(element.getNamespaceURI(),
				element.getLocalName());
		if (Constants.NAMESPACE_URI.equals(name.getNamespaceURI())) {
			customization.markAsAcknowledged();

			final AnnotationTarget annotationTarget = AnnotationTarget
					.getAnnotationTarget(element, AnnotationTarget
							.getAnnotationTarget(getDefaultFieldTarget()));

			try {
				final JAnnotatable annotatable = annotationTarget
						.getAnnotatable(fieldOutline.parent().parent(),
								fieldOutline);
				annotate(codeModel, errorHandler, customization, element,
						annotatable);
			} catch (IllegalArgumentException iaex) {
				logger.error("Error applying the annotation.", iaex);
			}

		}
	}
}
 
开发者ID:highsource,项目名称:jaxb2-annotate-plugin,代码行数:28,代码来源:AnnotatePlugin.java


示例15: annotate

import com.sun.codemodel.JAnnotatable; //导入依赖的package包/类
protected void annotate(JAnnotatable annotatable) {
	this.propertyInfo
			.acceptPropertyInfoVisitor(new AnnotatePropertyVisitor(
					annotatable));
}
 
开发者ID:highsource,项目名称:jaxb2-basics,代码行数:6,代码来源:AbstractPropertyOutline.java


示例16: AnnotatePropertyVisitor

import com.sun.codemodel.JAnnotatable; //导入依赖的package包/类
public AnnotatePropertyVisitor(final JAnnotatable annotatable) {
	Validate.notNull(annotatable);
	this.annotatable = annotatable;
}
 
开发者ID:highsource,项目名称:jaxb2-basics,代码行数:5,代码来源:AnnotatePropertyVisitor.java


示例17: annotate

import com.sun.codemodel.JAnnotatable; //导入依赖的package包/类
protected void annotate(JAnnotatable annotatable) {
	annotatable.annotate(XmlAnyAttribute.class);
}
 
开发者ID:highsource,项目名称:jaxb2-basics,代码行数:4,代码来源:AnyAttributePropertyOutline.java


示例18: writeXmlElementAnnotation

import com.sun.codemodel.JAnnotatable; //导入依赖的package包/类
/**
 * Generate the simplest XmlElement annotation possible taking all semantic optimizations
 * into account.  This method is essentially equivalent to:
 *
 *     xew.name(ctype.getTagName().getLocalPart())
 *        .namespace(ctype.getTagName().getNamespaceURI())
 *        .type(jtype)
 *        .defaultValue(ctype.getDefaultValue());
 *
 * @param field
 * @param ctype
 * @param jtype
 * @param checkWrapper true if the method might need to generate XmlElements
 */
private void writeXmlElementAnnotation( JAnnotatable field, CTypeRef ctype, JType jtype,
                                        boolean checkWrapper ) {

    // lazily create - we don't know if we need to generate anything yet
    XmlElementWriter xew = null;

    // these values are used to determine how to optimize the generated annotation
    XmlNsForm formDefault = parent()._package().getElementFormDefault();
    String mostUsedURI = parent()._package().getMostUsedNamespaceURI();
    String propName = prop.getName(false);

    // generate the name property?
    String generatedName = ctype.getTagName().getLocalPart();
    if(!generatedName.equals(propName)) {
        if(xew == null) xew = getXew(checkWrapper, field);
        xew.name(generatedName);
    }

    // generate the namespace property?
    String generatedNS = ctype.getTagName().getNamespaceURI();
    if (((formDefault == XmlNsForm.QUALIFIED) && !generatedNS.equals(mostUsedURI)) ||
            ((formDefault == XmlNsForm.UNQUALIFIED) && !generatedNS.equals(""))) {
        if(xew == null) xew = getXew(checkWrapper, field);
        xew.namespace(generatedNS);
    }

    // generate the required() property?
    CElementPropertyInfo ep = (CElementPropertyInfo) prop;
    if(ep.isRequired() && exposedType.isReference()) {
        if(xew == null) xew = getXew(checkWrapper, field);
        xew.required(true);
    }

    // generate the type property?

    // I'm not too sure if this is the right place to handle this, but
    // if the schema definition is requiring this element, we should point to a primitive type,
    // not wrapper type (to correctly carry forward the required semantics.)
    // if it's a collection, we can't use a primitive, however.
    if(ep.isRequired() && !prop.isCollection())
        jtype = jtype.unboxify();

    // when generating code for 1.4, the runtime can't infer that ArrayList<Foo> derives
    // from Collection<Foo> (because List isn't parameterized), so always expclitly
    // generate @XmlElement(type=...)
    if( !jtype.equals(exposedType) || (parent().parent().getModel().options.runtime14 && prop.isCollection())) {
        if(xew == null) xew = getXew(checkWrapper, field);
        xew.type(jtype);
    }

    // generate defaultValue property?
    final String defaultValue = ctype.getDefaultValue();
    if (defaultValue!=null) {
        if(xew == null) xew = getXew(checkWrapper, field);
        xew.defaultValue(defaultValue);
    }

    // generate the nillable property?
    if (ctype.isNillable()) {
        if(xew == null) xew = getXew(checkWrapper, field);
        xew.nillable(true);
    }
}
 
开发者ID:highsource,项目名称:hyperjaxb3,代码行数:78,代码来源:AbstractField.java


示例19: annotate

import com.sun.codemodel.JAnnotatable; //导入依赖的package包/类
@Override
protected void annotate(JAnnotatable field) {
	field.annotate(XmlTransient.class);
}
 
开发者ID:highsource,项目名称:hyperjaxb3,代码行数:5,代码来源:TransientSingleField.java


示例20: addListAnnotation

import com.sun.codemodel.JAnnotatable; //导入依赖的package包/类
/**
 * Add a list valued annotation the annotatable.
 *
 * @param jAnnotatable
 *            the annotatable
 * @param annotation
 *            the annotation
 * @param param
 *            the name of the parameter
 * @param values
 *            the values.
 */
private void addListAnnotation(final JAnnotatable jAnnotatable,
        final Class<? extends Annotation> annotation, final String param,
        final Collection<String> values) {
    if (!values.isEmpty()) {
        final JAnnotationArrayMember annotationValues =
                jAnnotatable.annotate(annotation).paramArray(param);
        for (final String value : values) {
            annotationValues.param(value);
        }
    }
}
 
开发者ID:strandls,项目名称:alchemy-rest-client-generator,代码行数:24,代码来源:ServiceStubGenerator.java



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java PointVectorStrategy类代码示例发布时间:2022-05-22
下一篇:
Java SynchronousMode类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap