com.format.xml.schema
API has been deprecated. Instead, use the com.format.xml.bind.schema
API.public abstract class ALcdXMLTypedElementReader extends Object implementsILcdXMLElementReader
ILcdXMLElementReader
, facilitating
the implementation of custom XML readers and offering support for XML type inheritance,
based on schema information.
Its main functions are:
void content(ILcdXMLNameStack aElementStack, String aContent)
: handling of simple contentvoid initObject(ILcdXMLNameStack aElementStack, ILcdAssocSet aAttributes)
: initialization of a new objectvoid handleChild(ILcdXMLNameStack aElementStack, Object aObject)
: handling of a child elementvoid finalizeObject(ILcdXMLNameStack aElementStack)
: finalization of the current objectObject createContext()
: creation of a context, in which temporary information can be savedConstructor and Description |
---|
ALcdXMLTypedElementReader(ILcdXMLTypedElementReaderProvider aTypedElementReaderProvider,
ILcdXMLObjectFactoryProvider aTypeFactoryProvider,
ILcdXMLSchemaProvider aSchemaProvider,
TLcdXMLName aTypeName)
Deprecated.
Creates a new reader for a global type.
|
ALcdXMLTypedElementReader(ILcdXMLTypedElementReaderProvider aTypedElementReaderProvider,
ILcdXMLObjectFactoryProvider aTypeFactoryProvider,
ILcdXMLSchemaProvider aSchemaProvider,
TLcdXMLName aTypeName,
TLcdXMLName[] aElementNameStack)
Deprecated.
Creates a new reader for an anonymous type.
|
Modifier and Type | Method and Description |
---|---|
boolean |
canHandleContent(ILcdXMLDocumentContext aContext)
Deprecated.
Returns
true if this method can handle simple (text) content, false if content
handling should be delegated to an XML base type handler. |
void |
content(ILcdXMLNameStack aElementStack,
char[] chars,
int start,
int length,
ILcdXMLDocumentContext aContext)
Deprecated.
Reports some simple character content to be processed.
|
void |
content(ILcdXMLNameStack aElementStack,
String aContent,
ILcdXMLDocumentContext aContext)
Deprecated.
This method is called whenever simple content is parsed and the
canHandleContent()
method returns true . |
protected Object |
createContext()
Deprecated.
Creates a new context, that can be used by the reader to store intermediate information
during the handling of an element.
|
protected Object |
createObject(ILcdXMLNameStack aElementStack,
ILcdAssocSet aAttributes,
ILcdXMLDocumentContext aDocumentContext)
Deprecated.
Creates and returns a new instance for the current element handled by this reader.
|
void |
endChildElement(ILcdXMLNameStack aElementStack,
ILcdXMLElementReader aReader,
Object aObject,
ILcdXMLDocumentContext aContext)
Deprecated.
This method is called whenever a child element has been finished.
|
Object |
endElement(ILcdXMLNameStack aElementStack,
ILcdXMLDocumentContext aContext)
Deprecated.
Ends an element.
|
protected void |
finalizeObject(ILcdXMLNameStack aElementStack,
ILcdXMLDocumentContext aContext)
Deprecated.
Finalizes the current object.
|
protected ILcdXMLElementReader |
getBaseTypeReader()
Deprecated.
Returns the base type reader of this reader, or
null if none exists. |
ILcdXMLElementReader |
getChildReader(ILcdXMLNameStack aElementStack,
ILcdAssocSet aAttributes,
ILcdXMLDocumentContext aContext)
Deprecated.
Tries to find a matching reader for the given child.
|
protected Object |
getCurrentContext(ILcdXMLDocumentContext aContext)
Deprecated.
Returns the current context.
|
protected Object |
getCurrentObject(ILcdXMLDocumentContext aContext)
Deprecated.
Returns the current object.
|
protected ILcdXMLTypedElementReaderProvider |
getElementReaderProvider()
Deprecated.
Returns the
ILcdXMLTypereaderProvider that is used by this reader. |
protected ILcdXMLObjectFactoryProvider |
getObjectFactoryProvider()
Deprecated.
Returns the
ILcdXMLTypeFactoryProvider that is used by this reader. |
protected ILcdXMLSchemaProvider |
getSchemaProvider()
Deprecated.
Returns the
ILcdXMLSchemaProvider that is used by this reader. |
protected TLcdXMLSchemaUtil |
getXMLSchemaUtil()
Deprecated.
Returns an XML util instance, initialized with the proper schema provider.
|
void |
handleChild(ILcdXMLNameStack aElementStack,
Object aObject,
ILcdXMLDocumentContext aContext)
Deprecated.
Is called by
endChildreader whenever a child element is finished, that
is supported by this reader. |
protected void |
initObject(ILcdXMLNameStack aElementStack,
ILcdAssocSet aAttributes,
ILcdXMLDocumentContext aContext)
Deprecated.
Initializes a newly created object.
|
protected boolean |
isSupportedAttribute(TLcdXMLName aAttributeName)
Deprecated.
|
protected boolean |
isSupportedChild(ILcdXMLNameStack aElementStack,
ILcdXMLDocumentContext aContext)
Deprecated.
Returns
true if the given element is a supported child (i.e., if this reader
can take the necessary steps to store the object that is created by the child's reader. |
protected boolean |
isTrimContent(ILcdXMLNameStack aElementStack,
String aContent,
ILcdXMLDocumentContext aContext)
Deprecated.
Returns whether content should be trimmed or not.
|
void |
startElement(ILcdXMLNameStack aElementStack,
ILcdAssocSet aAttributes,
Object aObject,
ILcdXMLDocumentContext aContext)
Deprecated.
Starts a new element, and performs the following steps:
create a new context for this element, by calling
createContext()
if aObject is null , create a new object, by calling
createObject(TLcdXMLGlobalName aELementName, ILcdAssocSet aAttributes) ,
and registered as the current object. |
public ALcdXMLTypedElementReader(ILcdXMLTypedElementReaderProvider aTypedElementReaderProvider, ILcdXMLObjectFactoryProvider aTypeFactoryProvider, ILcdXMLSchemaProvider aSchemaProvider, TLcdXMLName aTypeName)
aTypedElementReaderProvider
- The provider to be used for lookup of child readers.aTypeFactoryProvider
- The provider to be used for creation of new object instances.aSchemaProvider
- The provider to be used for lookup of XML type hierarchies.aTypeName
- Each time an element stack is started, whose top element matches
this type, a new context and domain model object will be created.public ALcdXMLTypedElementReader(ILcdXMLTypedElementReaderProvider aTypedElementReaderProvider, ILcdXMLObjectFactoryProvider aTypeFactoryProvider, ILcdXMLSchemaProvider aSchemaProvider, TLcdXMLName aTypeName, TLcdXMLName[] aElementNameStack)
aTypedElementReaderProvider
- The provider to be used for lookup of child readers.aTypeFactoryProvider
- The provider to be used for creation of new object instances.aSchemaProvider
- The provider to be used for lookup of XML type hierarchies.aTypeName
- The closest global ancestor type in which the anonymous type is contained, or
null
if there is no ancestor element defined by a global type
(i.e., all ancestor elements of the type have an anonymous type).aElementNameStack
- The list of element names that identify the anonymous type, starting
from the top-most global element or one of the child element of
the given global type.public void startElement(ILcdXMLNameStack aElementStack, ILcdAssocSet aAttributes, Object aObject, ILcdXMLDocumentContext aContext)
createContext()
aObject
is null
, create a new object, by calling
createObject(TLcdXMLGlobalName aELementName, ILcdAssocSet aAttributes)
,
and registered as the current object. If aObject
isn't
null
, that object will be registered with the current context as the
current object to work on.startElement
method of the base type's reader, if there is one,
with the current object as last parameter. Attributes supported by this handled will
be filtered out when delegating to the base type's reader.initObject(TLcdXMLGlobalName aElement,
ILcdAssocSet aAttributes)
startElement
in interface ILcdXMLElementReader
aElementStack
- aAttributes
- aObject
- aContext
- public Object endElement(ILcdXMLNameStack aElementStack, ILcdXMLDocumentContext aContext)
endElement
method of the base type's reader, if there is onefinalizeObject
endElement
in interface ILcdXMLElementReader
aElementStack
- aContext
- public void content(ILcdXMLNameStack aElementStack, char[] chars, int start, int length, ILcdXMLDocumentContext aContext)
ILcdXMLElementReader
aLength == -1
, to indicate that the content block has ended.content
in interface ILcdXMLElementReader
aElementStack
- The current element name stack, including the container element for this
content on top.chars
- The characters.start
- The start position in the character array.length
- The number of characters to use from the character array.aContext
- The document context for the XML document currently being decoded.public void content(ILcdXMLNameStack aElementStack, String aContent, ILcdXMLDocumentContext aContext)
canHandleContent()
method returns true
.
The default implementation does nothing.aElementStack
- aContent
- aContext
- public boolean canHandleContent(ILcdXMLDocumentContext aContext)
true
if this method can handle simple (text) content, false
if content
handling should be delegated to an XML base type handler.
By default, returns false
.true
if this method can handle simple content, false
otherwise.protected boolean isTrimContent(ILcdXMLNameStack aElementStack, String aContent, ILcdXMLDocumentContext aContext)
false
if
the type has mixed content, true
otherwise.aElementStack
- the current element name stack.aContent
- the content to be processed.aContext
- the document context.true
if the content should be trimmed, false
otherwise.public ILcdXMLElementReader getChildReader(ILcdXMLNameStack aElementStack, ILcdAssocSet aAttributes, ILcdXMLDocumentContext aContext)
isSupportedChild(child)
returns
true
), returns the reader provided by the element reader provider.null
.getChildReader
in interface ILcdXMLElementReader
aElementStack
- aAttributes
- aContext
- public void endChildElement(ILcdXMLNameStack aElementStack, ILcdXMLElementReader aReader, Object aObject, ILcdXMLDocumentContext aContext)
handleChild
is called with the
corresponding child element name (if the child element was substituted, the
originally registered child name is passed, not the substituted name) and the
object that was created by the child reader.endChildreader
method of the supertype's readers.endChildElement
in interface ILcdXMLElementReader
aElementStack
- aReader
- aObject
- aContext
- protected boolean isSupportedChild(ILcdXMLNameStack aElementStack, ILcdXMLDocumentContext aContext)
true
if the given element is a supported child (i.e., if this reader
can take the necessary steps to store the object that is created by the child's reader.
A child is supported if either:
aElementStack
- true
if the given element is supported by this reader, false
otherwise.protected boolean isSupportedAttribute(TLcdXMLName aAttributeName)
protected ILcdXMLElementReader getBaseTypeReader()
null
if none exists.
This is done by climbing up the type hierarchy (type.getSuperType()
) until
a type is found for which a reader is registered with the type reader provider.protected Object createObject(ILcdXMLNameStack aElementStack, ILcdAssocSet aAttributes, ILcdXMLDocumentContext aDocumentContext)
null
is returned.
If the created object returned by the object factory is an instance of ILcdXMLEditableElement,
it will also set the correct XML name on the element.aAttributes
- aDocumentContext
- protected void initObject(ILcdXMLNameStack aElementStack, ILcdAssocSet aAttributes, ILcdXMLDocumentContext aContext)
aAttributes
- aContext
- public void handleChild(ILcdXMLNameStack aElementStack, Object aObject, ILcdXMLDocumentContext aContext)
endChildreader
whenever a child element is finished, that
is supported by this reader. If the element was substituted, the original element name,
registered with this reader, is passed.aObject
- aContext
- protected void finalizeObject(ILcdXMLNameStack aElementStack, ILcdXMLDocumentContext aContext)
protected Object getCurrentObject(ILcdXMLDocumentContext aContext)
protected Object createContext()
null
is returned.protected Object getCurrentContext(ILcdXMLDocumentContext aContext)
protected ILcdXMLTypedElementReaderProvider getElementReaderProvider()
ILcdXMLTypereaderProvider
that is used by this reader.ILcdXMLTypereaderProvider
that is used by this reader.protected ILcdXMLObjectFactoryProvider getObjectFactoryProvider()
ILcdXMLTypeFactoryProvider
that is used by this reader.ILcdXMLTypeFactoryProvider
that is used by this reader.protected TLcdXMLSchemaUtil getXMLSchemaUtil()
protected ILcdXMLSchemaProvider getSchemaProvider()
ILcdXMLSchemaProvider
that is used by this reader.ILcdXMLSchemaProvider
that is used by this reader.