public class XmlSelectorWrapper extends ParserComponent implements Selector, XmlNode
XML_TYPE_ATTRIBUTE, XML_TYPE_ELEMENT, XML_TYPE_NONE, XML_TYPE_TEXT
Constructor and Description |
---|
XmlSelectorWrapper()
Constructs a new XmlSelectorWrapper.
|
Modifier and Type | Method and Description |
---|---|
void |
clearValue(ParsingContext context)
Clears the current property value.
|
Selector |
close(ParsingContext context)
Checks for any unsatisfied components before the stream is closed.
|
Document |
createBaseDocument()
Creates a DOM made up of all XmlSelectorWrapper descendants that wrap
a group or record.
|
int |
getCount(ParsingContext context)
Returns the number of times this component was matched within the current
iteration of its parent component.
|
int |
getDepth() |
protected String |
getKey(String namespace,
String name)
Returns a Map key for accessing state information for this Node.
|
String |
getLocalName()
Returns the XML local name for this node.
|
int |
getMaxOccurs()
Returns the maximum number of occurrences of this component (within the context
of its parent).
|
int |
getMinOccurs()
Returns the minimum number of occurrences of this component (within the context
of its parent).
|
String |
getNamespace()
Returns the namespace of this node.
|
int |
getOrder()
Returns the order of this component (within the context of its parent).
|
String |
getPrefix()
Returns the namespace prefix for marshaling this node, or null
if the namespace should override the default namespace.
|
Property |
getProperty()
Returns the
Property mapped to this component, or null if there is
no property mapping. |
int |
getSize()
Returns the size of a single occurrence of this element, which is used to offset
field positions for repeating segments and fields.
|
int |
getType()
Returns the XML node type.
|
Object |
getValue(ParsingContext context)
Returns the unmarshalled property value.
|
boolean |
hasContent(ParsingContext context)
Returns whether this parser or any of its descendant have content for marshalling.
|
boolean |
isGroup() |
boolean |
isIdentifier()
Returns whether this parser or any descendant of this parser is used to identify
a record during unmarshalling.
|
boolean |
isMaxOccursReached(ParsingContext context)
Returns whether this component has reached its maximum occurrences.
|
boolean |
isNamespaceAware()
Returns true if a namespace was configured for this node, and is
therefore used to unmarshal and marshal the node.
|
boolean |
isNillable()
Returns whether this node is nillable.
|
boolean |
isOptional()
Returns whether this node must exist during unmarshalling.
|
boolean |
isRecordGroup()
Returns whether this component is a record group.
|
boolean |
isRepeating()
Returns whether this node may repeat in the context of its immediate parent.
|
boolean |
marshal(MarshallingContext context)
Marshals a record.
|
Selector |
matchAny(UnmarshallingContext context)
Finds a parser that matches the input record.
|
boolean |
matches(UnmarshallingContext context)
Returns whether this parser and its children match a record
being unmarshalled.
|
Selector |
matchNext(MarshallingContext context)
Finds a parser for marshalling a bean object.
|
Selector |
matchNext(UnmarshallingContext context)
Finds a parser for unmarshalling a record based on the current state of the stream.
|
void |
registerLocals(Set<ParserLocal<?>> locals)
Called by a stream to register variables stored in the parsing context.
|
void |
reset(ParsingContext context)
Resets the component count of this Selector's children.
|
void |
restoreState(ParsingContext context,
String namespace,
Map<String,Object> state)
Restores a Map of previously stored state information.
|
void |
setCount(ParsingContext context,
int count)
Sets the number of times this component was matched within the current
iteration of its parent component.
|
void |
setDepth(int depth) |
void |
setGroup(boolean group) |
void |
setLocalName(String localName) |
void |
setNamespace(String namespace) |
void |
setNamespaceAware(boolean namespaceAware) |
void |
setPrefix(String prefix) |
void |
setValue(ParsingContext context,
Object value)
Sets the property value for marshaling.
|
void |
skip(UnmarshallingContext context)
Skips a record or group of records.
|
protected void |
toParamString(StringBuilder s)
Called by
TreeNode.toString() to append node parameters to the output. |
boolean |
unmarshal(UnmarshallingContext context)
Unmarshals a record.
|
void |
updateState(ParsingContext context,
String namespace,
Map<String,Object> state)
Updates a Map with the current state of the Marshaller.
|
isSupportedChild
add, clone, find, getChildren, getFirst, getName, isDescendant, iterator, print, print, setName, size, sort, toString, updateReferences
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
forEach, spliterator
public XmlSelectorWrapper()
public Document createBaseDocument()
Document
public boolean marshal(MarshallingContext context) throws IOException
Parser
marshal
in interface Parser
context
- the MarshallingContext
IOException
- if an I/O error occurspublic boolean unmarshal(UnmarshallingContext context)
Parser
unmarshal
in interface Parser
context
- the UnmarshallingContext
public void skip(UnmarshallingContext context)
Selector
skip
in interface Selector
context
- the UnmarshallingContext
public Selector matchNext(MarshallingContext context)
Selector
matchNext
in interface Selector
context
- the MarshallingContext
Selector
for marshalling the bean objectpublic Selector matchNext(UnmarshallingContext context)
Selector
matchNext
in interface Selector
context
- the UnmarshallingContext
Selector
for unmarshalling the recordpublic Selector matchAny(UnmarshallingContext context)
Selector
Selector.matchNext(UnmarshallingContext)
returns null, in order to differentiate
between unexpected and unidentified record types.matchAny
in interface Selector
context
- the UnmarshallingContext
Selector
public boolean matches(UnmarshallingContext context)
Parser
matches
in interface Parser
context
- the UnmarshallingContext
public void updateState(ParsingContext context, String namespace, Map<String,Object> state)
updateState
in interface Selector
namespace
- a String to prefix all state keys withstate
- the Map to update with the latest statecontext
- the ParsingContext
public void restoreState(ParsingContext context, String namespace, Map<String,Object> state)
restoreState
in interface Selector
namespace
- a String to prefix all state keys withstate
- the Map containing the state to restorecontext
- the ParsingContext
protected String getKey(String namespace, String name)
namespace
- the assigned namespace for the keyname
- the state information to accesspublic Object getValue(ParsingContext context)
Parser
getValue
in interface Parser
context
- the ParsingContext
public void setValue(ParsingContext context, Object value)
Parser
setValue
in interface Parser
context
- the ParsingContext
value
- the property valuepublic int getSize()
Parser
The concept of size is dependent on the stream format. The size of an element in a fixed length stream format is determined by the length of the element in characters, while other stream formats calculate size based on the number of fields. Some stream formats, such as XML, may ignore size settings.
public Selector close(ParsingContext context)
Selector
close
in interface Selector
context
- the ParsingContext
public void reset(ParsingContext context)
Selector
reset
in interface Selector
context
- the ParsingContext
public int getCount(ParsingContext context)
Selector
getCount
in interface Selector
context
- the ParsingContext
public void setCount(ParsingContext context, int count)
Selector
setCount
in interface Selector
context
- the ParsingContext
count
- the new match countpublic int getMinOccurs()
Selector
getMinOccurs
in interface Selector
public int getMaxOccurs()
Selector
getMaxOccurs
in interface Selector
public int getOrder()
Selector
public boolean isMaxOccursReached(ParsingContext context)
Selector
isMaxOccursReached
in interface Selector
context
- the ParsingContext
public void clearValue(ParsingContext context)
Parser
clearValue
in interface Parser
context
- the ParsingContext
public boolean isIdentifier()
Parser
isIdentifier
in interface Parser
public boolean isGroup()
public void setGroup(boolean group)
public boolean isOptional()
Parser
isOptional
in interface Parser
public String getLocalName()
XmlNode
getLocalName
in interface XmlNode
public void setLocalName(String localName)
public String getNamespace()
XmlNode
getNamespace
in interface XmlNode
public void setNamespace(String namespace)
namespace
- public String getPrefix()
XmlNode
public void setPrefix(String prefix)
prefix
- public boolean isNamespaceAware()
XmlNode
isNamespaceAware
in interface XmlNode
public void setNamespaceAware(boolean namespaceAware)
namespaceAware
- public int getType()
XmlNode
getType
in interface XmlNode
XmlNode.XML_TYPE_NONE
,
XmlNode.XML_TYPE_ELEMENT
,
XmlNode.XML_TYPE_ATTRIBUTE
, or
XmlNode.XML_TYPE_TEXT
public boolean isNillable()
XmlNode
isNillable
in interface XmlNode
public boolean isRepeating()
XmlNode
isRepeating
in interface XmlNode
public Property getProperty()
Selector
Property
mapped to this component, or null if there is
no property mapping.getProperty
in interface Selector
Property
mapped to this componentpublic boolean hasContent(ParsingContext context)
Parser
hasContent
in interface Parser
context
- the ParsingContext
public boolean isRecordGroup()
Selector
isRecordGroup
in interface Selector
public int getDepth()
public void setDepth(int depth)
public void registerLocals(Set<ParserLocal<?>> locals)
Component
registerLocals
in class Component
locals
- set of local variablesprotected void toParamString(StringBuilder s)
TreeNode
TreeNode.toString()
to append node parameters to the output.toParamString
in class TreeNode<Component>
s
- the output to append