com.sun.codemodel.JAnnotatable Java Examples
The following examples show how to use
com.sun.codemodel.JAnnotatable.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: AbstractField.java From hyperjaxb3 with BSD 2-Clause "Simplified" License | 6 votes |
/** * 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); }
Example #2
Source File: AbstractField.java From hyperjaxb3 with BSD 2-Clause "Simplified" License | 5 votes |
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; }
Example #3
Source File: AbstractField.java From hyperjaxb3 with BSD 2-Clause "Simplified" License | 5 votes |
/** * 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); } }
Example #4
Source File: PMMLPlugin.java From jpmml-model with BSD 3-Clause "New" or "Revised" License | 5 votes |
static private List<JAnnotationUse> getAnnotations(JAnnotatable annotatable){ try { Class<?> clazz = annotatable.getClass(); Field field; while(true){ try { field = clazz.getDeclaredField("annotations"); break; } catch(NoSuchFieldException nsfe){ clazz = clazz.getSuperclass(); if(clazz == null){ throw nsfe; } } } if(!field.isAccessible()){ field.setAccessible(true); } return (List)field.get(annotatable); } catch(ReflectiveOperationException roe){ throw new RuntimeException(roe); } }
Example #5
Source File: AbstractPropertyOutline.java From jaxb2-basics with BSD 2-Clause "Simplified" License | 4 votes |
protected void annotate(JAnnotatable annotatable) { this.propertyInfo .acceptPropertyInfoVisitor(new AnnotatePropertyVisitor( annotatable)); }
Example #6
Source File: AnnotatePropertyVisitor.java From jaxb2-basics with BSD 2-Clause "Simplified" License | 4 votes |
public AnnotatePropertyVisitor(final JAnnotatable annotatable) { Validate.notNull(annotatable); this.annotatable = annotatable; }
Example #7
Source File: AnyAttributePropertyOutline.java From jaxb2-basics with BSD 2-Clause "Simplified" License | 4 votes |
protected void annotate(JAnnotatable annotatable) { annotatable.annotate(XmlAnyAttribute.class); }
Example #8
Source File: AbstractField.java From hyperjaxb3 with BSD 2-Clause "Simplified" License | 4 votes |
/** * 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); } }
Example #9
Source File: TransientSingleField.java From hyperjaxb3 with BSD 2-Clause "Simplified" License | 4 votes |
@Override protected void annotate(JAnnotatable field) { field.annotate(XmlTransient.class); }