Interface RuntimeElementPropertyInfo

    • Method Detail

      • ref

        java.util.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<java.lang.reflect.Type,​java.lang.Class>
        Specified by:
        ref in interface RuntimePropertyInfo
        Returns:
        non-null read-only collection.
      • getTypes

        java.util.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<java.lang.reflect.Type,​java.lang.Class>
        Returns:
        Always non-null. Contains at least one entry. If ElementPropertyInfo.isValueList()==true, there's always exactly one type.