All object model factories must implement this interface. Object model factories are used on unmarshalling to build an object graph that is a representation of the XML content unmarshalled.
Each object model factory must implement methods
newRoot
and
completeRoot
defined in this interface, plus a set of
newChild
,
addChild
and
setValue
methods that will be descovered by the framework at runtime with introspection.
The contract for methods discovered at runtime with introspection:
newChild
methods
This method is called by the framework on the object model factory when parsing of a new XML element started. Each newChild
method must have five arguments: - parent object of a concrete Java type (not
java.lang.Object
) for this new child - instance of
org.jboss.xml.binding.UnmarshallingContext
- namespace URI of the child XML element as
java.lang.String
- local name of the child XML element as
java.lang.String
- attributes of the child XML element as
org.xml.sax.Attributes
Each newChild()
method returns either a new instance of the child object that represents the XML element with the namespace URI and local name (in this case, the child XML element is said to be accepted, i.e. should be represented in the object graph) or null
if this child XML element should be ignored, i.e. not be represented in the object graph.
addChild
methods
This method is called on the object model factory by the framework when parsing of a child XML element completed. The arguments of the addChild()
method are: - parent object of a conrete Java type (not
java.lang.Object
) of the child - child object of a concrete Java type (returned earlier by the
newChild
method that was called when parsing of this child XML element started) - instance of
org.jboss.xml.binding.UnmarshallingContext
- namespace URI for the child XML element
as java.lang.String
- local name for the child XML element as
java.lang.String
When addChild
method is called, the child object is supposed to be populated with all the data from the corresponding XML element. The child object now can be validated and added to the parent.
setValue
methods
This method is called on the object model factory by the framework when a new XML element with text content was parsed. The method must have four arguments: - an object of a concrete Java type (not
java.lang.Object
) which was returned earlier by the newChild
method (that was called when parsing of the parent XML element started) for which the value of an XML element was read - instance of
org.jboss.xml.binding.UnmarshallingContext
- namespace URI of the child XML element as
java.lang.String
- local name of the child XML element as
java.lang.String
- the value of the child XML element as
java.lang.String
In setValue
method the object model factory is supposed to set the value on the field which represents the parsed XML element possibly converting the parsed XML element value to the field's Java type.
@author
Alexey Loubyansky
@version
$Revision: 1455 $