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.
addFieldDesc
public void addFieldDesc(FieldDesc field)
Add a new FieldDesc, keeping the convenience fields in sync.
getAttributeNameForField
public QName getAttributeNameForField(String fieldName)
Get the QName associated with this field, but only if it's
marked as an attribute.
getElementNameForField
public QName getElementNameForField(String fieldName)
Get the QName associated with this field, but only if it's
marked as an element.
getFieldByName
public FieldDesc getFieldByName(String name)
Get a FieldDesc by field name.
getFieldNameForAttribute
public String getFieldNameForAttribute(QName qname)
Get the field name associated with this QName, 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.
getFields
public FieldDesc[] getFields()
Obtain the current array of FieldDescs
getFields
public FieldDesc[] getFields(boolean searchParents)
getPropertyDescriptorMap
public Map getPropertyDescriptorMap()
Get/Cache the property descriptor map
- Map with key=propertyName, value=descriptor
getPropertyDescriptors
public BeanPropertyDescriptor[] getPropertyDescriptors()
Get/Cache the property descriptors
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).
getXmlType
public QName getXmlType()
hasAttributes
public boolean hasAttributes()
Do we have any FieldDescs marked as attributes?
registerTypeDescForClass
public static void registerTypeDescForClass(Class cls,
TypeDesc td)
Static function to explicitly register a type description for
a given class.
cls
- the Class we're registering metadata abouttd
- the TypeDesc containing the metadata
setFields
public void setFields(FieldDesc[] newFields)
Replace the array of FieldDescs, making sure we keep our convenience
caches in sync.
setXmlType
public void setXmlType(QName xmlType)