Class TypeDesc

java.lang.Object
org.apache.axis.description.TypeDesc
All Implemented Interfaces:
Serializable

public class TypeDesc extends Object implements 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:
  • Field Details

    • noClasses

      public static final Class[] noClasses
    • noObjects

      public static final Object[] noObjects
    • log

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

    • TypeDesc

      public TypeDesc(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(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 Details

    • registerTypeDescForClass

      public static void registerTypeDescForClass(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(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).
    • getAnyDesc

      public BeanPropertyDescriptor getAnyDesc()
    • 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(String fieldName)
      Get the QName associated with this field, but only if it's marked as an element.
    • getAttributeNameForField

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

      public 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 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(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
    • getAnyContentDescriptor

      public BeanPropertyDescriptor getAnyContentDescriptor()
    • getPropertyDescriptorMap

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