com.sun.xml.bind.v2.model.runtime
Interface RuntimeElementPropertyInfo

All Superinterfaces:
AnnotationSource, ElementPropertyInfo<Type,Class>, PropertyInfo<Type,Class>, RuntimePropertyInfo
All Known Implementing Classes:
RuntimeElementInfoImpl.RuntimePropertyImpl, RuntimeElementPropertyInfoImpl

public interface RuntimeElementPropertyInfo
extends ElementPropertyInfo<Type,Class>, RuntimePropertyInfo


Method Summary
 List<? extends RuntimeTypeRef> getTypes()
          Returns the information about the types allowed in this property.
 Collection<? extends RuntimeTypeInfo> ref()
          List of TypeInfos that this property references.
 
Methods inherited from interface com.sun.xml.bind.v2.model.core.ElementPropertyInfo
getAdapter, getXmlName, isCollectionNillable, isCollectionRequired, isRequired, isValueList
 
Methods inherited from interface com.sun.xml.bind.v2.model.runtime.RuntimePropertyInfo
elementOnlyContent, getAccessor, getIndividualType, getRawType
 
Methods inherited from interface com.sun.xml.bind.v2.model.core.PropertyInfo
displayName, getExpectedMimeType, getName, getSchemaType, id, inlineBinaryData, isCollection, kind, parent
 
Methods inherited from interface com.sun.xml.bind.v2.model.annotation.AnnotationSource
hasAnnotation, readAnnotation
 

Method Detail

ref

Collection<? extends RuntimeTypeInfo> 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.

Specified by:
ref in interface PropertyInfo<Type,Class>
Specified by:
ref in interface RuntimePropertyInfo
Returns:
non-null read-only collection.

getTypes

List<? extends RuntimeTypeRef> getTypes()
Description copied from interface: ElementPropertyInfo
Returns the information about the types allowed in this property.

In a simple case like the following, an element property only has one TypeRef that points to String and tag name "foo".

 @XmlElement
 String abc;
 

However, in a general case an element property can be heterogeneous, meaning you can put different types in it, each with a different tag name (and a few other settings.)

 // list can contain String or Integer.
 @XmlElements({
   @XmlElement(name="a",type=String.class),
   @XmlElement(name="b",type=Integer.class),
 })
 List<Object> abc;
 

In this case this method returns a list of two TypeRefs.

Specified by:
getTypes in interface ElementPropertyInfo<Type,Class>
Returns:
Always non-null. Contains at least one entry. If ElementPropertyInfo.isValueList()==true, there's always exactly one type.