XML field descriptor. Wraps
FieldDescriptor
and adds
XML-related information, type conversion, etc.
Note: When using a GeneralizedFieldHandler the getFieldType() methods of handler and
descriptor need to return the same result.
equals
public boolean equals(Object obj)
Returns true if two XMLFieldDescriptors should be treated as
equal. Any XMLFieldDescriptor that handles the same field
is considered equal.
- true if two XMLFieldDescriptors should be treated as equal.
getQNamePrefix
public String getQNamePrefix()
Returns the prefix used in case the value of the field described by this
descriptor is of type QName. This is helpful for the Marshaller but not mandatory.
- the prefix used in the QName value.
hashCode
public int hashCode()
Returns the hashCode for this XMLFieldDescriptor
- the hashCode for this XMLFieldDescriptor
setConstructorArgumentIndex
public void setConstructorArgumentIndex(int index)
Sets whether or not the value of the field represented by this FieldDescriptor
should be set via the constructor of the containing ClassDescriptor. The index
value greater than 0 specifies the index within the argument array that the value
of this field should be.
Note: This only applies to attribute mapped fields at this time.
index
- the index within the argument array. A value less than zero
indicates that this field should not be part of the constructor arguments.
setContainer
public void setContainer(boolean isContainer)
Set if the field is a container field or not.
isContainer
- a boolean indicating whether or not the field is a container
field.
setIncremental
public void setIncremental(boolean incremental)
Sets the incremental flag which indicates whether this member
can be added before the unmarshaller is finished unmarshalling it.
incremental
- the boolean which if true indicated that this
member can safely be added before the unmarshaller is finished
unmarshalling it.
setLocationPath
public void setLocationPath(String path)
Sets the location path for the field being described.
In most cases, this isn't needed. However sometimes a field may be mapped to a
nested element. In which case the value of the location path should be the nested
element name. If more than one level of nesting is needed each nested element
name should be separated by a path separator (forward slash '/').
The location path name is "relative" to the parent Class. The name of the parent
should not be included in the path.
For example, give the following two classes:
class Root {
Bar bar;
}
class Bar {
String value;
}
And the following XML:
<root>
<foo>
<bar> value of bar </bar>
</foo>
</root>
Since foo has no associated class, the path for 'bar' would be: "foo"
path
- the "relative" location path for the field.
setMapped
public void setMapped(boolean mapped)
Sets whether or not this field has been mapped in a Map or Hashtable.
mapped
- a boolean that when true indicates this field is a Hashtable or Map.
setMatches
public void setMatches(String matchExpr)
This is a space separated list of xml names that this Field descriptor matches.
A '*' is wild.
matchExpr
- the space separated list of xml names, matched by this
descriptor.
setNameSpacePrefix
public void setNameSpacePrefix(String nsPrefix)
Sets the namespace prefix used when marshalling as XML.
nsPrefix
- The namespace prefix used when marshalling the "described" object.
setNameSpaceURI
public void setNameSpaceURI(String nsURI)
Sets the namespace URI used when marshalling and unmarshalling as XML.
nsURI
- The namespace URI used when marshalling and unmarshalling the
"described" Object.
setNillable
public void setNillable(boolean nillable)
Sets whether or not the described field is allowed to be nil. A nillable field
can have empty content (text or element content), but may have attribute values,
and still be considered value, even if the child elements are required.
nillable
- a boolean indicating whether or not the described field may be
nillable.
setNodeType
public void setNodeType(NodeType nodeType)
Sets the XML node type for the described field.
nodeType
- the NodeType for the described field.
setProperty
public void setProperty(String propertyName,
String value)
Sets the value property with the given name.
propertyName
- The name of the property to set the value of.value
- The value of the property.
setQNamePrefix
public void setQNamePrefix(String qNamePrefix)
Sets the prefix used in case the value of the field described by this descriptor
is of type QName.
setReference
public void setReference(boolean isReference)
Sets the flag indicating that the field described by this descriptor is a
reference to another field in the object model.
isReference
- true if the field is a reference to another field.
setSchemaType
public void setSchemaType(String schemaType)
Sets the type of the XML Schema type of the value for the field being described.
schemaType
- The value type.
setUseParentsNamespace
public void setUseParentsNamespace(boolean useParentsNamespace)
Sets whether or not the namespace for the parent "containing"
class should be used during marshalling/unmarshalling when
no specific namespace URI has been set for this field.
setXMLName
public void setXMLName(String xmlName)
Sets the xml name for the described field.
xmlName
- the XML name for the described field.
toString
public String toString()