| java.lang.Object com.sun.tools.xjc.model.CPropertyInfo
All known Subclasses: com.sun.tools.xjc.model.CReferencePropertyInfo, com.sun.tools.xjc.model.CElementPropertyInfo, com.sun.tools.xjc.model.CSingleTypePropertyInfo,
CPropertyInfo | abstract public class CPropertyInfo implements PropertyInfo<NType, NClass>,CCustomizable(Code) | | Model of a property to be generated.
author: Kohsuke Kawaguchi |
Method Summary | |
abstract public V | accept(CPropertyVisitor<V> visitor) | public QName | collectElementNames(Map<QName, CPropertyInfo> table) Puts the element names that this property possesses to the map,
so that we can find two properties that own the same element name,
which is an error.
null if no conflict was found. | public String | displayName() | abstract public CAdapter | getAdapter() | public CCustomizations | getCustomizations() | public Locator | getLocator() | public String | getName() Name of the property.
This method is implemented to follow the contract of
PropertyInfo.getName , and therefore it always
returns the name of the annotated field.
This name is normally not useful for the rest of XJC,
which usually wants to access the "public name" of the property.
A "public name" of the property is a name like "FooBar" which
is used as a seed for generating the accessor methods.
This is the name controlled by the schema customization via users.
If the caller is calling this method statically, it's usually
the sign of a mistake. | public String | getName(boolean isPublic) Gets the name of the property.
Parameters: isPublic - if true, this method returns a name like "FooBar", whichshould be used as a seed for generating user-visible names(such as accessors like "getFooBar".)if false, this method returns the "name of the property"as defined in the j2s side of the spec. | final public XSComponent | getSchemaComponent() If this model object is built from XML Schema,
this property returns a schema component from which the model is built. | final public boolean | hasAnnotation(Class<? extends Annotation> annotationType) | public boolean | inlineBinaryData() | public boolean | isCollection() | public boolean | isOptionalPrimitive() Returns true if this property needs to represent null
just for the purpose of representing an absence of the property. | public boolean | isUnboxable() Returns true if this property is "unboxable".
In general, a property often has to be capable of representing null
to indicate the absence of the value. | protected static boolean | needsExplicitTypeName(TypeUse type, QName typeName) Checks if the given
TypeUse would need an explicit
XmlSchemaType annotation with the given type name. | public CTypeInfo | parent() | final public A | readAnnotation(Class<A> annotationType) | abstract public Collection<? extends CTypeInfo> | ref() | public void | setName(boolean isPublic, String newName) Overrides the name of the property. | final void | setParent(CClassInfo parent) |
baseType | public JType baseType(Code) | | If the base type of the property is overriden,
this field is set to non-null.
|
defaultValue | public CDefaultValue defaultValue(Code) | | If non-null, keeps the default value in Java representation.
If
CPropertyInfo.isCollection is true, this field is always null,
for we don't handle default values for a list.
|
inlineBinaryData | public boolean inlineBinaryData(Code) | | Property with
@XmlInlineBinaryData .
|
javadoc | public String javadoc(Code) | | Javadoc for this property. Must not be null.
|
realization | public FieldRenderer realization(Code) | | Specifies how the field is generated by the backedn.
|
collectElementNames | public QName collectElementNames(Map<QName, CPropertyInfo> table)(Code) | | Puts the element names that this property possesses to the map,
so that we can find two properties that own the same element name,
which is an error.
null if no conflict was found. Otherwise return the QName that has the collision. |
getName | public String getName()(Code) | | Name of the property.
This method is implemented to follow the contract of
PropertyInfo.getName , and therefore it always
returns the name of the annotated field.
This name is normally not useful for the rest of XJC,
which usually wants to access the "public name" of the property.
A "public name" of the property is a name like "FooBar" which
is used as a seed for generating the accessor methods.
This is the name controlled by the schema customization via users.
If the caller is calling this method statically, it's usually
the sign of a mistake. Use
CPropertyInfo.getName(boolean) method instead,
which forces you to think about which name you want to get.
See Also: CPropertyInfo.getName(boolean) |
getName | public String getName(boolean isPublic)(Code) | | Gets the name of the property.
Parameters: isPublic - if true, this method returns a name like "FooBar", whichshould be used as a seed for generating user-visible names(such as accessors like "getFooBar".)if false, this method returns the "name of the property"as defined in the j2s side of the spec. This name is usuallysomething like "fooBar", which often corresponds to the XMLelement/attribute name of this property (for taking advantageof annotation defaulting as much as possible) |
getSchemaComponent | final public XSComponent getSchemaComponent()(Code) | | If this model object is built from XML Schema,
this property returns a schema component from which the model is built.
null if the model is built from sources other than XML Schema(such as DTD.) |
inlineBinaryData | public boolean inlineBinaryData()(Code) | | |
isCollection | public boolean isCollection()(Code) | | |
isOptionalPrimitive | public boolean isOptionalPrimitive()(Code) | | Returns true if this property needs to represent null
just for the purpose of representing an absence of the property.
|
isUnboxable | public boolean isUnboxable()(Code) | | Returns true if this property is "unboxable".
In general, a property often has to be capable of representing null
to indicate the absence of the value. This requires properties
to be generated as @XmlElement Float f, not as
@XmlElement float f;. But this is slow.
Fortunately, there are cases where we know that the property can
never legally be absent. When this condition holds we can generate
the optimized "unboxed form".
The exact such conditions depend
on the kind of properties, so refer to the implementation code
for the details.
This method returns true when the property can be generated
as "unboxed form", false otherwise.
When this property is a collection, this method returns true
if items in the collection is unboxable. Obviously, the collection
itself is always a reference type.
|
needsExplicitTypeName | protected static boolean needsExplicitTypeName(TypeUse type, QName typeName)(Code) | | Checks if the given
TypeUse would need an explicit
XmlSchemaType annotation with the given type name.
|
readAnnotation | final public A readAnnotation(Class<A> annotationType)(Code) | | |
|
|