com.sun.xml.bind.v2.model.core

Interface PropertyInfo<T,C>

public interface PropertyInfo<T,C> extends AnnotationSource

Information about a JAXB-bound property.

All the JAXB annotations are already incorporated into the model so that the caller doesn't have to worry about reading them. For this reason, you cannot access annotations on properties directly. TODO: don't we need a visitor?

Method Summary
StringdisplayName()
Gets the display name of the property.
Adapter<T,C>getAdapter()
MimeTypegetExpectedMimeType()
Expected MIME type, if any.
StringgetName()
Gets the name of the property.
QNamegetSchemaType()
The effective value of XmlSchemaType annotation, if any.
IDid()
Returns the IDness of the value of this element.
booleaninlineBinaryData()
If this is true and this property indeed represents a binary data, it should be always inlined.
booleanisCollection()
Returns true if this is a multi-valued collection property.
PropertyKindkind()
Gets the kind of this proeprty.
TypeInfo<T,C>parent()
Gets the ClassInfo or ElementInfo to which this property belongs.
Collection<? extends TypeInfo<T,C>>ref()
List of TypeInfos that this property references.

Method Detail

displayName

public String displayName()
Gets the display name of the property.

This is a convenience method for {@code parent().getName()+'#'+getName()}.

getAdapter

public Adapter<T,C> getAdapter()

Returns: null if the property is not adapted.

getExpectedMimeType

public MimeType getExpectedMimeType()
Expected MIME type, if any.

getName

public String getName()
Gets the name of the property.

For example, "foo" or "bar". Generally, a property name is different from XML, (although they are often related, as a property name is often computed from tag names / attribute names.) In fact, property names do not directly affect XML. The property name uniquely identifies a property within a class.

See Also: XmlType#propOrder()

getSchemaType

public QName getSchemaType()
The effective value of XmlSchemaType annotation, if any.

If the property doesn't have XmlSchemaType annotation, this method returns null.

Since a type name is a property of a Java type, not a Java property, A schema type name of a Java type should be primarily obtained by using getTypeName. This method is to correctly implement the ugly semantics of XmlSchemaType (namely when this returns non-null, it overrides the type names of all types that are in this property.)

id

public ID id()
Returns the IDness of the value of this element.

Returns: always non-null

See Also: XmlID XmlIDREF

inlineBinaryData

public boolean inlineBinaryData()
If this is true and this property indeed represents a binary data, it should be always inlined.

isCollection

public boolean isCollection()
Returns true if this is a multi-valued collection property. Otherwise false, in which case the property is a single value.

kind

public PropertyKind kind()
Gets the kind of this proeprty.

Returns: always non-null.

parent

public TypeInfo<T,C> parent()
Gets the ClassInfo or ElementInfo to which this property belongs.

ref

public Collection<? extends TypeInfo<T,C>> ref()
List of TypeInfos that this property references. This allows the caller to traverse the reference graph without getting into the details of each different property type.

Returns: non-null read-only collection.