Interface RuntimeElementPropertyInfo

All Superinterfaces:
AnnotationSource, ElementPropertyInfo<Type,Class>, PropertyInfo<Type,Class>, RuntimePropertyInfo

public interface RuntimeElementPropertyInfo extends ElementPropertyInfo<Type,Class>, RuntimePropertyInfo
Author:
Kohsuke Kawaguchi
  • Method Details

    • 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.