org.exolab.castor.xml

Interface XMLFieldDescriptor

All Superinterfaces:
FieldDescriptor
Known Implementing Classes:
XMLFieldDescriptorImpl, XMLMappingLoader.ContainerElementFieldDescriptor

public interface XMLFieldDescriptor
extends FieldDescriptor

XML field descriptor. Wraps FieldDescriptor and adds XML-related information, type conversion, etc.
Version:
$Revision: 1.5 $ $Date: 2003/04/24 02:09:01 $
Authors:
Assaf Arkin
Keith Visco

Method Summary

int
getConstructorArgumentIndex()
Returns the index within the constructor argument array where the value of this field should be.
String
getLocationPath()
Returns the "relative" XML path for the field being described.
String
getNameSpacePrefix()
Return the "suggested" namespace prefix to use when marshalling as XML.
String
getNameSpaceURI()
Returns the namespace URI to be used when marshalling and unmarshalling as XML.
NodeType
getNodeType()
Returns the NodeType of the Field being described.
String
getSchemaType()
Returns the XML Schema type of the XML field being described.
FieldValidator
getValidator()
Returns a specific validator for the field described by this descriptor.
String
getXMLName()
Returns the XML Name for the field being described.
boolean
isConstructorArgument()
Returns true if the value of the field represented by this descriptor should be set via the constructor of the containing class.
boolean
isContainer()
Returns true if the field described by this descriptor is a container field.
boolean
isIncremental()
Returns the incremental flag which when true indicates that this member may be safely added before the unmarshaller is finished unmarshalling it.
boolean
isMapped()
Returns true if the field described by this descriptor is Map or Hashtable.
boolean
isMultivalued()
Returns true if the field described by this descriptor can contain more than one value
boolean
isReference()
Returns true if the field described by this descriptor is a reference (ie.
boolean
matches(String xmlName)
Returns true if this descriptor can be used to handle elements or attributes with the given XML name.
boolean
matches(String xmlName, String namespace)
Returns true if this descriptor can be used to handle elements or attributes with the given XML name.

Methods inherited from interface org.exolab.castor.mapping.FieldDescriptor

getClassDescriptor, getContainingClassDescriptor, getFieldName, getFieldType, getHandler, isImmutable, isMultivalued, isRequired, isTransient, setContainingClassDescriptor

Method Details

getConstructorArgumentIndex

public int getConstructorArgumentIndex()
Returns the index within the constructor argument array where the value of this field should be. A value less than zero indicates that the value of this field is set via a normal setter method and not via the constructor. Note: This only applies to attribute mapped fields at this time.
Returns:
the index within the constructor argument array for this field.
See Also:
isConstructorArgument

getLocationPath

public String getLocationPath()
Returns the "relative" XML path for the field being described. In most cases, this will be null. However sometimes a field may be mapped to a nested element. In which case the value returned by this method should be the nested element name. If more than one level of nesting is needed each nested element name should be separated by 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"

getNameSpacePrefix

public String getNameSpacePrefix()
Return the "suggested" namespace prefix to use when marshalling as XML.
Returns:
the "suggested" namespace prefix.

getNameSpaceURI

public String getNameSpaceURI()
Returns the namespace URI to be used when marshalling and unmarshalling as XML.
Returns:
the namespace URI.

getNodeType

public NodeType getNodeType()
Returns the NodeType of the Field being described. The NodeType represents the Type of Node that the Field will be marshalled into XML as.
Returns:
the NodeType of the Field being described.

getSchemaType

public String getSchemaType()
Returns the XML Schema type of the XML field being described.
Returns:
the XML Schema type of the XML field being described.

getValidator

public FieldValidator getValidator()
Returns a specific validator for the field described by this descriptor. A null value may be returned if no specific validator exists.
Returns:
the field validator for the described field

getXMLName

public String getXMLName()
Returns the XML Name for the field being described.
Returns:
the XML name.

isConstructorArgument

public boolean isConstructorArgument()
Returns true if the value of the field represented by this descriptor should be set via the constructor of the containing class. This is only valid for attribute mapped fields.
Returns:
true if the value of the field represented by this descriptor should be set via the constructor of the containing class.

isContainer

public boolean isContainer()
Returns true if the field described by this descriptor is a container field. A container is a field that is not a first-class object, and should therefore have no XML representation.
Returns:
true if the field is a container

isIncremental

public boolean isIncremental()
Returns the incremental flag which when true indicates that this member may be safely added before the unmarshaller is finished unmarshalling it.
Returns:
true if the Object can safely be added before the unmarshaller is finished unmarshalling the Object.

isMapped

public boolean isMapped()
Returns true if the field described by this descriptor is Map or Hashtable. If this method returns true, it must also return true for any call to #isMultivalued.
Returns:
true if the field described by this desciptor is a Map or Hashtable, otherwise false.

isMultivalued

public boolean isMultivalued()
Returns true if the field described by this descriptor can contain more than one value
Specified by:
isMultivalued in interface FieldDescriptor
Returns:
true if the field described by this descriptor can contain more than one value

isReference

public boolean isReference()
Returns true if the field described by this descriptor is a reference (ie. IDREF) to another object in the "Object Model" (XML tree)

matches

public boolean matches(String xmlName)
Returns true if this descriptor can be used to handle elements or attributes with the given XML name. By default this method simply compares the given XML name with the internal XML name. This method can be overridden to provide more complex matching.
Parameters:
xmlName - the XML name to compare
Returns:
true if this descriptor can be used to handle elements or attributes with the given XML name.

matches

public boolean matches(String xmlName,
                       String namespace)
Returns true if this descriptor can be used to handle elements or attributes with the given XML name. By default this method simply compares the given XML name with the internal XML name. This method can be overridden to provide more complex matching.
Parameters:
xmlName - the XML name to compare
namespace - the namespace URI
Returns:
true if this descriptor can be used to handle elements or attributes with the given XML name.

Intalio Inc. (C) 1999-2003. All rights reserved http://www.intalio.com