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

Interface ReferencePropertyInfo<T,C>

public interface ReferencePropertyInfo<T,C> extends PropertyInfo<T,C>

PropertyInfo that holds references to other Elements.
Method Summary
Adapter<T,C>getAdapter()
CgetDOMHandler()
If this property supports the wildcard, returns its DOM handler.
Set<? extends Element<T,C>>getElements()
Returns the information about the possible elements in this property.
WildcardModegetWildcard()
If this property supports the wildcard, returns its mode.
QNamegetXmlName()
Gets the wrapper element name.
booleanisCollectionNillable()
Returns true if this property is nillable (meaning the absence of the value is treated as nil='true')

This method is only used when this property is a collection.

booleanisCollectionRequired()
Checks if the wrapper element is required.
booleanisMixed()
Returns true if this property can hold Strings to represent mixed content model.
booleanisRequired()
Returns true if this element is mandatory.
Collection<? extends TypeInfo<T,C>>ref()
{@inheritDoc }.

Method Detail

getAdapter

public Adapter<T,C> getAdapter()

getDOMHandler

public C getDOMHandler()
If this property supports the wildcard, returns its DOM handler.

Returns: null if the wildcard is not allowed on this element.

getElements

public Set<? extends Element<T,C>> getElements()
Returns the information about the possible elements in this property.

As of 2004/08/17, the spec only allows you to use different element names when a property is a collection, but I think there's really no reason to limit it there --- if the user wants to use a different tag name for different objects, I don't see why this can be limited to collections.

So this is a generalization of the spec. We always allow a property to have multiple types and use different tag names for it, depending on the actual type.

In most of the cases, this collection only contains 1 item. So the runtime system is encouraged to provide a faster code-path that is optimized toward such cases.

Returns: Always non-null. Contains at least one entry.

getWildcard

public WildcardMode getWildcard()
If this property supports the wildcard, returns its mode.

Returns: null if the wildcard is not allowed on this element.

getXmlName

public QName getXmlName()
Gets the wrapper element name.

Returns: must be null if not collection. If the property is a collection, this can be null (in which case there'll be no wrapper), or it can be non-null (in which case there'll be a wrapper)

isCollectionNillable

public boolean isCollectionNillable()
Returns true if this property is nillable (meaning the absence of the value is treated as nil='true')

This method is only used when this property is a collection.

isCollectionRequired

public boolean isCollectionRequired()
Checks if the wrapper element is required.

Returns: Always false if getXmlName==null.

isMixed

public boolean isMixed()
Returns true if this property can hold Strings to represent mixed content model.

isRequired

public boolean isRequired()
Returns true if this element is mandatory.

ref

public Collection<? extends TypeInfo<T,C>> ref()
{@inheritDoc }. If this ReferencePropertyInfo has a wildcard in it, then the returned list will contain WildcardTypeInfo.