Class TypeDesc

  • All Implemented Interfaces:
    java.io.Serializable

    public class TypeDesc
    extends java.lang.Object
    implements java.io.Serializable
    A TypeDesc represents a Java<->XML data binding. It is essentially a collection of FieldDescs describing how to map each field in a Java class to XML.
    Author:
    Glen Daniels (gdaniels@apache.org)
    See Also:
    Serialized Form
    • Field Detail

      • noClasses

        public static final java.lang.Class[] noClasses
      • noObjects

        public static final java.lang.Object[] noObjects
      • log

        protected static org.apache.commons.logging.Log log
    • Constructor Detail

      • TypeDesc

        public TypeDesc​(java.lang.Class javaClass)
        Creates a new TypeDesc instance. The type desc can search the metadata of its type'sparent classes.
        Parameters:
        javaClass - a Class value
      • TypeDesc

        public TypeDesc​(java.lang.Class javaClass,
                        boolean canSearchParents)
        Creates a new TypeDesc instance.
        Parameters:
        javaClass - a Class value
        canSearchParents - whether the type desc can search the metadata of its type's parent classes.
    • Method Detail

      • registerTypeDescForClass

        public static void registerTypeDescForClass​(java.lang.Class cls,
                                                    TypeDesc td)
        Static function to explicitly register a type description for a given class.
        Parameters:
        cls - the Class we're registering metadata about
        td - the TypeDesc containing the metadata
      • getTypeDescForClass

        public static TypeDesc getTypeDescForClass​(java.lang.Class cls)
        Static function for centralizing access to type metadata for a given class. This checks for a static getTypeDesc() method on the class or _Helper class. Eventually we may extend this to provide for external metadata config (via files sitting in the classpath, etc).
      • getFields

        public FieldDesc[] getFields()
        Obtain the current array of FieldDescs
      • getFields

        public FieldDesc[] getFields​(boolean searchParents)
      • setFields

        public void setFields​(FieldDesc[] newFields)
        Replace the array of FieldDescs, making sure we keep our convenience caches in sync.
      • addFieldDesc

        public void addFieldDesc​(FieldDesc field)
        Add a new FieldDesc, keeping the convenience fields in sync.
      • getElementNameForField

        public QName getElementNameForField​(java.lang.String fieldName)
        Get the QName associated with this field, but only if it's marked as an element.
      • getAttributeNameForField

        public QName getAttributeNameForField​(java.lang.String fieldName)
        Get the QName associated with this field, but only if it's marked as an attribute.
      • getFieldNameForElement

        public java.lang.String getFieldNameForElement​(QName qname,
                                                       boolean ignoreNS)
        Get the field name associated with this QName, but only if it's marked as an element. If the "ignoreNS" argument is true, just compare localNames.
      • getFieldNameForAttribute

        public java.lang.String getFieldNameForAttribute​(QName qname)
        Get the field name associated with this QName, but only if it's marked as an attribute.
      • getFieldByName

        public FieldDesc getFieldByName​(java.lang.String name)
        Get a FieldDesc by field name.
      • hasAttributes

        public boolean hasAttributes()
        Do we have any FieldDescs marked as attributes?
      • getXmlType

        public QName getXmlType()
      • setXmlType

        public void setXmlType​(QName xmlType)
      • getPropertyDescriptors

        public BeanPropertyDescriptor[] getPropertyDescriptors()
        Get/Cache the property descriptors
        Returns:
        PropertyDescriptor
      • getPropertyDescriptorMap

        public java.util.Map getPropertyDescriptorMap()
        Get/Cache the property descriptor map
        Returns:
        Map with key=propertyName, value=descriptor