BeanIO 2.0.4

org.beanio.internal.parser
Class RecordAggregation

java.lang.Object
  extended by org.beanio.internal.util.TreeNode<Component>
      extended by org.beanio.internal.parser.Component
          extended by org.beanio.internal.parser.ParserComponent
              extended by org.beanio.internal.parser.DelegatingParser
                  extended by org.beanio.internal.parser.RecordAggregation
All Implemented Interfaces:
Cloneable, Iterable<Component>, Parser, Property, Selector, Replicateable
Direct Known Subclasses:
RecordCollection, RecordMap

public abstract class RecordAggregation
extends DelegatingParser
implements Selector, Property

Since:
2.0.1
Author:
Kevin Seim

Field Summary
protected  ParserLocal<Object> value
           
 
Fields inherited from interface org.beanio.internal.parser.Selector
COUNT_KEY
 
Fields inherited from interface org.beanio.internal.parser.Property
AGGREGATION_ARRAY, AGGREGATION_COLLECTION, AGGREGATION_MAP, COLLECTION, COMPLEX, MAP, SIMPLE
 
Constructor Summary
RecordAggregation()
          Constructs a new RecordAggregation.
 
Method Summary
 void clearValue(ParsingContext context)
          Clears the current property value.
 Selector close(ParsingContext context)
          Checks for any unsatisfied components before the stream is closed.
protected  Object createAggregationType()
           
 Object createValue(ParsingContext context)
          Creates the property value and returns it.
 boolean defines(Object value)
           
 PropertyAccessor getAccessor()
           
 int getCount(ParsingContext context)
          Returns the number of times this component was matched within the current iteration of its parent component.
 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).
 Object getNullValue()
           
 int getOrder()
          Returns the order of this component (within the context of its parent).
 Property getProperty()
          Returns the Property mapped to this component, or null if there is no property mapping.
 Selector getSelector()
          Returns the child selector.
 Class<?> getType()
           
 Object getValue(ParsingContext context)
          Returns the unmarshalled property value.
 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 isRecordGroup()
          Returns whether this component is a record group.
protected  boolean isSupportedChild(Component child)
          Returns whether a node is a supported child of this node.
 Selector matchAny(UnmarshallingContext context)
          Finds a parser that matches the input record.
 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<? extends Object>> 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 setAccessor(PropertyAccessor accessor)
           
 void setCount(ParsingContext context, int count)
          Sets the number of times this component was matched within the current iteration of its parent component.
 void setIdentifier(boolean identifier)
           
 void setType(Class<?> type)
          Sets the collection type.
 void setValue(ParsingContext context, Object value)
          Sets the property value for marshaling.
 void skip(UnmarshallingContext context)
          Skips a record or group of records.
 void updateState(ParsingContext context, String namespace, Map<String,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, isLazy, marshal, matches, unmarshal
 
Methods inherited from class org.beanio.internal.util.TreeNode
add, clone, find, getChildren, getFirst, getName, iterator, print, setName, size, sort, toParamString, 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, isLazy, marshal, matches, unmarshal
 
Methods inherited from interface org.beanio.internal.parser.Property
getName, type
 

Field Detail

value

protected ParserLocal<Object> value
Constructor Detail

RecordAggregation

public RecordAggregation()
Constructs a new RecordAggregation.

Method Detail

setType

public void setType(Class<?> type)
Sets the collection type.

Specified by:
setType in interface Property
Parameters:
type - Collection class type

getType

public Class<?> getType()
Specified by:
getType in interface Property

createValue

public Object createValue(ParsingContext context)
Description copied from interface: Property
Creates the property value and returns it.

Specified by:
createValue in interface Property
Parameters:
context - the ParsingContext
Returns:
the property value

getNullValue

public Object getNullValue()

createAggregationType

protected Object createAggregationType()

getValue

public Object getValue(ParsingContext context)
Description copied from interface: Parser
Returns the unmarshalled property value.

Specified by:
getValue in interface Parser
Specified by:
getValue in interface Property
Overrides:
getValue in class DelegatingParser
Parameters:
context - the ParsingContext
Returns:
the property value

clearValue

public void clearValue(ParsingContext context)
Description copied from interface: Parser
Clears the current property value.

Specified by:
clearValue in interface Parser
Specified by:
clearValue in interface Property
Overrides:
clearValue in class DelegatingParser
Parameters:
context - the ParsingContext

setValue

public void setValue(ParsingContext context,
                     Object value)
Description copied from interface: Parser
Sets the property value for marshaling.

Specified by:
setValue in interface Parser
Specified by:
setValue in interface Property
Overrides:
setValue in class DelegatingParser
Parameters:
context - the ParsingContext
value - the property value

getProperty

public Property getProperty()
Description copied from interface: Selector
Returns the Property mapped to this component, or null if there is no property mapping.

Specified by:
getProperty in interface Selector
Returns:
the Property mapped to this component

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 interface Selector
Parameters:
context - the UnmarshallingContext
Returns:
the matched Selector for unmarshalling the record

matchAny

public Selector matchAny(UnmarshallingContext context)
Description copied from interface: Selector
Finds a parser that matches the input record. This method is invoked when Selector.matchNext(UnmarshallingContext) returns null, in order to differentiate between unexpected and unidentified record types.

Specified by:
matchAny in interface Selector
Parameters:
context - the UnmarshallingContext
Returns:
the matched Selector

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 interface Selector
Parameters:
context - the MarshallingContext
Returns:
the matched Selector for marshalling the bean object

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 interface Selector
Parameters:
context - the ParsingContext
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 interface Selector
Parameters:
context - the ParsingContext

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 interface Selector
Parameters:
context - the ParsingContext
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 interface Selector
Parameters:
context - the ParsingContext
count - the new match count

getOrder

public int getOrder()
Description copied from interface: Selector
Returns the order of this component (within the context of its parent).

Specified by:
getOrder in interface Selector
Returns:
the component order

isMaxOccursReached

public boolean isMaxOccursReached(ParsingContext context)
Description copied from interface: Selector
Returns whether this component has reached its maximum occurrences.

Specified by:
isMaxOccursReached in interface Selector
Parameters:
context - the ParsingContext
Returns:
true if maximum occurrences has been reached

updateState

public void updateState(ParsingContext context,
                        String namespace,
                        Map<String,Object> state)
Description copied from interface: Selector
Updates a Map with the current state of the Writer to allow for restoration at a later time.

Specified by:
updateState in interface Selector
Parameters:
context - the ParsingContext
namespace - a String to prefix all state keys with
state - the Map to update with the latest state

restoreState

public void restoreState(ParsingContext context,
                         String namespace,
                         Map<String,Object> state)
                  throws IllegalStateException
Description copied from interface: Selector
Restores a Map of previously stored state information.

Specified by:
restoreState in interface Selector
Parameters:
context - the ParsingContext
namespace - a String to prefix all state keys with
state - the Map containing the state to restore
Throws:
IllegalStateException - if the Map is missing any state information

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 interface Selector
Returns:
the minimum occurrences

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 interface Selector
Returns:
the maximum occurrences

isSupportedChild

protected boolean isSupportedChild(Component child)
Description copied from class: TreeNode
Returns whether a node is a supported child of this node. Called by TreeNode.add(TreeNode).

Overrides:
isSupportedChild in class ParserComponent
Parameters:
child - the node to test
Returns:
true if the child is allowed

getSelector

public Selector getSelector()
Returns the child selector.

Returns:
the child Selector

getAccessor

public PropertyAccessor getAccessor()
Specified by:
getAccessor in interface Property

setAccessor

public void setAccessor(PropertyAccessor accessor)
Specified by:
setAccessor in interface Property

defines

public boolean defines(Object value)
Specified by:
defines in interface Property

setIdentifier

public void setIdentifier(boolean identifier)
Specified by:
setIdentifier in interface Property

isIdentifier

public boolean isIdentifier()
Description copied from interface: Parser
Returns whether this parser or any descendant of this parser is used to identify a record during unmarshalling.

Specified by:
isIdentifier in interface Parser
Specified by:
isIdentifier in interface Property
Overrides:
isIdentifier in class DelegatingParser
Returns:
true if this parser or any descendant is used to identify a record

registerLocals

public void registerLocals(Set<ParserLocal<? extends Object>> 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 class Component
Parameters:
locals - set of local variables

skip

public void skip(UnmarshallingContext context)
Description copied from interface: Selector
Skips a record or group of records.

Specified by:
skip in interface Selector
Parameters:
context - the UnmarshallingContext

isRecordGroup

public boolean isRecordGroup()
Description copied from interface: Selector
Returns whether this component is a record group.

Specified by:
isRecordGroup in interface Selector
Returns:
true if this component is a record group, false otherwise

BeanIO 2.0.4

Copyright © 2010-2013 Kevin Seim