Package org.beanio.internal.parser
Class RecordAggregation
- java.lang.Object
-
- org.beanio.internal.util.TreeNode<Component>
-
- org.beanio.internal.parser.Component
-
- org.beanio.internal.parser.ParserComponent
-
- org.beanio.internal.parser.DelegatingParser
-
- org.beanio.internal.parser.RecordAggregation
-
- All Implemented Interfaces:
java.lang.Cloneable,java.lang.Iterable<Component>,Parser,Property,Selector,Replicateable
- Direct Known Subclasses:
RecordCollection,RecordMap
public abstract class RecordAggregation extends DelegatingParser implements Selector, Property
- Since:
- 2.0.1
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanlazyprotected ParserLocal<java.lang.Object>value-
Fields inherited from interface org.beanio.internal.parser.Property
AGGREGATION_ARRAY, AGGREGATION_COLLECTION, AGGREGATION_MAP, COLLECTION, COMPLEX, MAP, SIMPLE
-
-
Constructor Summary
Constructors Constructor Description RecordAggregation()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclearValue(ParsingContext context)Clears the current property value.Selectorclose(ParsingContext context)Checks for any unsatisfied components before the stream is closed.protected java.lang.ObjectcreateAggregationType()java.lang.ObjectcreateValue(ParsingContext context)Creates the property value and returns it.booleandefines(java.lang.Object value)PropertyAccessorgetAccessor()intgetCount(ParsingContext context)Returns the number of times this component was matched within the current iteration of its parent component.intgetMaxOccurs()Returns the maximum number of occurrences of this component (within the context of its parent).intgetMinOccurs()Returns the minimum number of occurrences of this component (within the context of its parent).java.lang.ObjectgetNullValue()intgetOrder()Returns the order of this component (within the context of its parent).PropertygetProperty()Returns thePropertymapped to this component, or null if there is no property mapping.SelectorgetSelector()Returns the child selector.java.lang.Class<?>getType()java.lang.ObjectgetValue(ParsingContext context)Returns the unmarshalled property value.booleanisIdentifier()Returns whether this parser or any descendant of this parser is used to identify a record during unmarshalling.booleanisLazy()booleanisMaxOccursReached(ParsingContext context)Returns whether this component has reached its maximum occurrences.booleanisRecordGroup()Returns whether this component is a record group.protected booleanisSupportedChild(Component child)Returns whether a node is a supported child of this node.SelectormatchAny(UnmarshallingContext context)Finds a parser that matches the input record.SelectormatchNext(MarshallingContext context)Finds a parser for marshalling a bean object.SelectormatchNext(UnmarshallingContext context)Finds a parser for unmarshalling a record based on the current state of the stream.voidregisterLocals(java.util.Set<ParserLocal<? extends java.lang.Object>> locals)Called by a stream to register variables stored in the parsing context.voidreset(ParsingContext context)Resets the component count of this Selector's children.voidrestoreState(ParsingContext context, java.lang.String namespace, java.util.Map<java.lang.String,java.lang.Object> state)Restores a Map of previously stored state information.voidsetAccessor(PropertyAccessor accessor)voidsetCount(ParsingContext context, int count)Sets the number of times this component was matched within the current iteration of its parent component.voidsetIdentifier(boolean identifier)voidsetLazy(boolean lazy)voidsetType(java.lang.Class<?> type)Sets the collection type.voidsetValue(ParsingContext context, java.lang.Object value)Sets the property value for marshaling.voidskip(UnmarshallingContext context)Skips a record or group of records.protected voidtoParamString(java.lang.StringBuilder s)Called byTreeNode.toString()to append node parameters to the output.voidupdateState(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 Writer to allow for restoration at a later time.-
Methods inherited from class org.beanio.internal.parser.DelegatingParser
getParser, getSize, hasContent, isOptional, marshal, matches, unmarshal
-
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
getName, getSize, hasContent, isOptional, marshal, matches, unmarshal
-
-
-
-
Field Detail
-
value
protected ParserLocal<java.lang.Object> value
-
lazy
protected boolean lazy
-
-
Method Detail
-
setType
public void setType(java.lang.Class<?> type)
Sets the collection type.
-
createValue
public java.lang.Object createValue(ParsingContext context)
Description copied from interface:PropertyCreates the property value and returns it.- Specified by:
createValuein interfaceProperty- Parameters:
context- theParsingContext- Returns:
- the property value
-
getNullValue
public java.lang.Object getNullValue()
-
createAggregationType
protected java.lang.Object createAggregationType()
-
getValue
public java.lang.Object getValue(ParsingContext context)
Description copied from interface:ParserReturns the unmarshalled property value.- Specified by:
getValuein interfaceParser- Specified by:
getValuein interfaceProperty- Overrides:
getValuein classDelegatingParser- Parameters:
context- theParsingContext- Returns:
- the property value
-
clearValue
public void clearValue(ParsingContext context)
Description copied from interface:ParserClears the current property value.- Specified by:
clearValuein interfaceParser- Specified by:
clearValuein interfaceProperty- Overrides:
clearValuein classDelegatingParser- Parameters:
context- theParsingContext
-
setValue
public void setValue(ParsingContext context, java.lang.Object value)
Description copied from interface:ParserSets the property value for marshaling.- Specified by:
setValuein interfaceParser- Specified by:
setValuein interfaceProperty- Overrides:
setValuein classDelegatingParser- Parameters:
context- theParsingContextvalue- the property value
-
getProperty
public Property getProperty()
Description copied from interface:SelectorReturns thePropertymapped to this component, or null if there is no property mapping.- Specified by:
getPropertyin interfaceSelector- Returns:
- the
Propertymapped to this component
-
matchNext
public Selector matchNext(UnmarshallingContext context)
Description copied from interface:SelectorFinds a parser for unmarshalling a record based on the current state of the stream.- Specified by:
matchNextin interfaceSelector- Parameters:
context- theUnmarshallingContext- Returns:
- the matched
Selectorfor unmarshalling the record
-
matchAny
public Selector matchAny(UnmarshallingContext context)
Description copied from interface:SelectorFinds 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:
matchAnyin interfaceSelector- Parameters:
context- theUnmarshallingContext- Returns:
- the matched
Selector
-
matchNext
public Selector matchNext(MarshallingContext context)
Description copied from interface:SelectorFinds 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:
matchNextin interfaceSelector- Parameters:
context- theMarshallingContext- Returns:
- the matched
Selectorfor marshalling the bean object
-
close
public Selector close(ParsingContext context)
Description copied from interface:SelectorChecks for any unsatisfied components before the stream is closed.- Specified by:
closein interfaceSelector- Parameters:
context- theParsingContext- Returns:
- the first unsatisfied node
-
reset
public void reset(ParsingContext context)
Description copied from interface:SelectorResets the component count of this Selector's children.- Specified by:
resetin interfaceSelector- Parameters:
context- theParsingContext
-
getCount
public int getCount(ParsingContext context)
Description copied from interface:SelectorReturns the number of times this component was matched within the current iteration of its parent component.- Specified by:
getCountin interfaceSelector- Parameters:
context- theParsingContext- Returns:
- the match count
-
setCount
public void setCount(ParsingContext context, int count)
Description copied from interface:SelectorSets the number of times this component was matched within the current iteration of its parent component.- Specified by:
setCountin interfaceSelector- Parameters:
context- theParsingContextcount- the new match count
-
getOrder
public int getOrder()
Description copied from interface:SelectorReturns the order of this component (within the context of its parent).
-
isMaxOccursReached
public boolean isMaxOccursReached(ParsingContext context)
Description copied from interface:SelectorReturns whether this component has reached its maximum occurrences.- Specified by:
isMaxOccursReachedin interfaceSelector- Parameters:
context- theParsingContext- Returns:
- true if maximum occurrences has been reached
-
updateState
public void updateState(ParsingContext context, java.lang.String namespace, java.util.Map<java.lang.String,java.lang.Object> state)
Description copied from interface:SelectorUpdates a Map with the current state of the Writer to allow for restoration at a later time.- Specified by:
updateStatein interfaceSelector- Parameters:
context- theParsingContextnamespace- a String to prefix all state keys withstate- the Map to update with the latest state
-
restoreState
public void restoreState(ParsingContext context, java.lang.String namespace, java.util.Map<java.lang.String,java.lang.Object> state) throws java.lang.IllegalStateException
Description copied from interface:SelectorRestores a Map of previously stored state information.- Specified by:
restoreStatein interfaceSelector- Parameters:
context- theParsingContextnamespace- a String to prefix all state keys withstate- the Map containing the state to restore- Throws:
java.lang.IllegalStateException- if the Map is missing any state information
-
getMinOccurs
public int getMinOccurs()
Description copied from interface:SelectorReturns the minimum number of occurrences of this component (within the context of its parent).- Specified by:
getMinOccursin interfaceSelector- Returns:
- the minimum occurrences
-
getMaxOccurs
public int getMaxOccurs()
Description copied from interface:SelectorReturns the maximum number of occurrences of this component (within the context of its parent).- Specified by:
getMaxOccursin interfaceSelector- Returns:
- the maximum occurrences
-
isLazy
public boolean isLazy()
-
setLazy
public void setLazy(boolean lazy)
-
isSupportedChild
protected boolean isSupportedChild(Component child)
Description copied from class:TreeNodeReturns whether a node is a supported child of this node. Called byTreeNode.add(TreeNode).- Overrides:
isSupportedChildin classParserComponent- Parameters:
child- the node to test- Returns:
- true if the child is allowed
-
getAccessor
public PropertyAccessor getAccessor()
- Specified by:
getAccessorin interfaceProperty
-
setAccessor
public void setAccessor(PropertyAccessor accessor)
- Specified by:
setAccessorin interfaceProperty
-
setIdentifier
public void setIdentifier(boolean identifier)
- Specified by:
setIdentifierin interfaceProperty
-
isIdentifier
public boolean isIdentifier()
Description copied from interface:ParserReturns whether this parser or any descendant of this parser is used to identify a record during unmarshalling.- Specified by:
isIdentifierin interfaceParser- Specified by:
isIdentifierin interfaceProperty- Overrides:
isIdentifierin classDelegatingParser- Returns:
- true if this parser or any descendant is used to identify a record
-
registerLocals
public void registerLocals(java.util.Set<ParserLocal<? extends java.lang.Object>> locals)
Description copied from class:ComponentCalled 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:
registerLocalsin classComponent- Parameters:
locals- set of local variables
-
skip
public void skip(UnmarshallingContext context)
Description copied from interface:SelectorSkips a record or group of records.- Specified by:
skipin interfaceSelector- Parameters:
context- theUnmarshallingContext
-
isRecordGroup
public boolean isRecordGroup()
Description copied from interface:SelectorReturns whether this component is a record group.- Specified by:
isRecordGroupin interfaceSelector- Returns:
- true if this component is a record group, false otherwise
-
toParamString
protected void toParamString(java.lang.StringBuilder s)
Description copied from class:TreeNodeCalled byTreeNode.toString()to append node parameters to the output.- Overrides:
toParamStringin classTreeNode<Component>- Parameters:
s- the output to append
-
-