Package org.beanio.internal.parser
Class Record
- java.lang.Object
-
- org.beanio.internal.util.TreeNode<Component>
-
- org.beanio.internal.parser.Component
-
- org.beanio.internal.parser.ParserComponent
-
- org.beanio.internal.parser.Segment
-
- org.beanio.internal.parser.Record
-
-
Constructor Summary
Constructors Constructor Description Record()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Selector
close(ParsingContext context)
Checks for any unsatisfied components before the stream is closed.int
getCount(ParsingContext context)
Returns the number of times this component was matched within the current iteration of its parent component.RecordFormat
getFormat()
protected java.lang.String
getKey(java.lang.String namespace, java.lang.String name)
Returns a Map key for accessing state information 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).int
getOrder()
Returns the order of this component (within the context of its parent).boolean
isMaxOccursReached(ParsingContext context)
Returns whether this component has reached its maximum occurrences.boolean
isRecordGroup()
Returns whether this component is a record group.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(java.util.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, java.lang.String namespace, java.util.Map<java.lang.String,java.lang.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
setFormat(RecordFormat format)
void
setMaxOccurs(int maxOccurs)
void
setMinOccurs(int minOccurs)
void
setOrder(int order)
void
skip(UnmarshallingContext context)
Skips a record or group of records.protected void
toParamString(java.lang.StringBuilder s)
Called byTreeNode.toString()
to append node parameters to the output.boolean
unmarshal(UnmarshallingContext context)
Unmarshals a record.void
updateState(ParsingContext context, java.lang.String namespace, java.util.Map<java.lang.String,java.lang.Object> state)
Updates a Map with the current state of the Marshaller.-
Methods inherited from class org.beanio.internal.parser.Segment
clearValue, getProperty, getSize, getValue, hasContent, isExistencePredetermined, isIdentifier, isOptional, isRepeating, setExistencePredetermined, setIdentifier, setOptional, setProperty, setRepeating, setSize, setValue
-
Methods inherited from class org.beanio.internal.parser.ParserComponent
isSupportedChild
-
Methods inherited from class org.beanio.internal.util.TreeNode
add, clone, find, getChildren, getFirst, getName, isDescendant, iterator, print, print, setName, size, sort, toString, updateReferences
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.beanio.internal.parser.Parser
clearValue, getName, getSize, getValue, hasContent, isIdentifier, isOptional, setValue
-
Methods inherited from interface org.beanio.internal.parser.Selector
getProperty
-
-
-
-
Method Detail
-
marshal
public boolean marshal(MarshallingContext context) throws java.io.IOException
Description copied from interface:Parser
Marshals a record.- Specified by:
marshal
in interfaceParser
- Overrides:
marshal
in classSegment
- Parameters:
context
- theMarshallingContext
- Returns:
- whether a value was marshalled
- Throws:
java.io.IOException
- if an I/O error occurs
-
unmarshal
public boolean unmarshal(UnmarshallingContext context)
Description copied from interface:Parser
Unmarshals a record.- Specified by:
unmarshal
in interfaceParser
- Overrides:
unmarshal
in classSegment
- Parameters:
context
- theUnmarshallingContext
- Returns:
true
if this component was present in the unmarshalled record, orfalse
otherwise
-
skip
public void skip(UnmarshallingContext context)
Description copied from interface:Selector
Skips a record or group of records.- Specified by:
skip
in interfaceSelector
- Parameters:
context
- theUnmarshallingContext
-
matchNext
public Selector matchNext(MarshallingContext context)
Description copied from interface:Selector
Finds a parser for marshalling a bean object. If matched by this Selector, the method should set the bean object on the property tree and return itself.- Specified by:
matchNext
in interfaceSelector
- Parameters:
context
- theMarshallingContext
- Returns:
- the matched
Selector
for marshalling the bean object
-
matchNext
public Selector matchNext(UnmarshallingContext context)
Description copied from interface:Selector
Finds a parser for unmarshalling a record based on the current state of the stream.- Specified by:
matchNext
in interfaceSelector
- Parameters:
context
- theUnmarshallingContext
- Returns:
- the matched
Selector
for unmarshalling the record
-
matches
public boolean matches(UnmarshallingContext context)
Description copied from interface:Parser
Returns whether this parser and its children match a record being unmarshalled.- Specified by:
matches
in interfaceParser
- Overrides:
matches
in classSegment
- Parameters:
context
- theUnmarshallingContext
- Returns:
- true if matched, false otherwise
-
matchAny
public Selector matchAny(UnmarshallingContext context)
Description copied from interface:Selector
Finds a parser that matches the input record. This method is invoked whenSelector.matchNext(UnmarshallingContext)
returns null, in order to differentiate between unexpected and unidentified record types.- Specified by:
matchAny
in interfaceSelector
- Parameters:
context
- theUnmarshallingContext
- Returns:
- the matched
Selector
-
close
public Selector close(ParsingContext context)
Description copied from interface:Selector
Checks for any unsatisfied components before the stream is closed.- Specified by:
close
in interfaceSelector
- Parameters:
context
- theParsingContext
- Returns:
- the first unsatisfied node
-
reset
public void reset(ParsingContext context)
Description copied from interface:Selector
Resets the component count of this Selector's children.- Specified by:
reset
in interfaceSelector
- Parameters:
context
- theParsingContext
-
updateState
public void updateState(ParsingContext context, java.lang.String namespace, java.util.Map<java.lang.String,java.lang.Object> state)
Updates a Map with the current state of the Marshaller. Used for creating restartable Writers for Spring Batch.- Specified by:
updateState
in interfaceSelector
- Parameters:
namespace
- a String to prefix all state keys withstate
- the Map to update with the latest statecontext
- theParsingContext
- Since:
- 1.2
-
restoreState
public void restoreState(ParsingContext context, java.lang.String namespace, java.util.Map<java.lang.String,java.lang.Object> state)
Restores a Map of previously stored state information. Used for restarting XML writers from Spring Batch.- Specified by:
restoreState
in interfaceSelector
- Parameters:
namespace
- a String to prefix all state keys withstate
- the Map containing the state to restorecontext
- theParsingContext
- Since:
- 1.2
-
getKey
protected java.lang.String getKey(java.lang.String namespace, java.lang.String name)
Returns a Map key for accessing state information for this Node.- Parameters:
namespace
- the assigned namespace for the keyname
- the state information to access- Returns:
- the fully qualified key
-
isRecordGroup
public boolean isRecordGroup()
Description copied from interface:Selector
Returns whether this component is a record group.- Specified by:
isRecordGroup
in interfaceSelector
- Returns:
- true if this component is a record group, false otherwise
-
getMinOccurs
public int getMinOccurs()
Description copied from interface:Selector
Returns the minimum number of occurrences of this component (within the context of its parent).- Specified by:
getMinOccurs
in interfaceSelector
- Returns:
- the minimum occurrences
-
setMinOccurs
public void setMinOccurs(int minOccurs)
-
getMaxOccurs
public int getMaxOccurs()
Description copied from interface:Selector
Returns the maximum number of occurrences of this component (within the context of its parent).- Specified by:
getMaxOccurs
in interfaceSelector
- Returns:
- the maximum occurrences
-
setMaxOccurs
public void setMaxOccurs(int maxOccurs)
-
getOrder
public int getOrder()
Description copied from interface:Selector
Returns the order of this component (within the context of its parent).
-
setOrder
public void setOrder(int order)
-
getCount
public int getCount(ParsingContext context)
Description copied from interface:Selector
Returns the number of times this component was matched within the current iteration of its parent component.- Specified by:
getCount
in interfaceSelector
- Parameters:
context
- theParsingContext
- Returns:
- the match count
-
setCount
public void setCount(ParsingContext context, int count)
Description copied from interface:Selector
Sets the number of times this component was matched within the current iteration of its parent component.- Specified by:
setCount
in interfaceSelector
- Parameters:
context
- theParsingContext
count
- the new match count
-
getFormat
public RecordFormat getFormat()
-
setFormat
public void setFormat(RecordFormat format)
-
registerLocals
public void registerLocals(java.util.Set<ParserLocal<?>> locals)
Description copied from class:Component
Called by a stream to register variables stored in the parsing context. This method should be overridden by subclasses that need to register one or more parser context variables.- Overrides:
registerLocals
in classSegment
- Parameters:
locals
- set of local variables
-
isMaxOccursReached
public boolean isMaxOccursReached(ParsingContext context)
Description copied from interface:Selector
Returns whether this component has reached its maximum occurrences.- Specified by:
isMaxOccursReached
in interfaceSelector
- Parameters:
context
- theParsingContext
- Returns:
- true if maximum occurrences has been reached
-
toParamString
protected void toParamString(java.lang.StringBuilder s)
Description copied from class:TreeNode
Called byTreeNode.toString()
to append node parameters to the output.- Overrides:
toParamString
in classSegment
- Parameters:
s
- the output to append
-
-