Class Group

  • All Implemented Interfaces:
    java.lang.Cloneable, java.lang.Iterable<Component>, Parser, Selector, Replicateable

    public class Group
    extends ParserComponent
    implements Selector
    A Group holds child nodes including records and other groups. This class is the dynamic counterpart to the GroupDefinition and holds the current state of a group node during stream processing.
    Since:
    2.0
    • Constructor Detail

      • Group

        public Group()
        Constructs a new Group.
    • Method Detail

      • marshal

        public boolean marshal​(MarshallingContext context)
                        throws java.io.IOException
        Description copied from interface: Parser
        Marshals a record.
        Specified by:
        marshal in interface Parser
        Parameters:
        context - the MarshallingContext
        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 interface Parser
        Parameters:
        context - the UnmarshallingContext
        Returns:
        true if this component was present in the unmarshalled record, or false otherwise
      • 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
      • 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 interface Parser
        Parameters:
        context - the UnmarshallingContext
        Returns:
        true if matched, false otherwise
      • isMaxOccursReached

        public boolean isMaxOccursReached​(ParsingContext context)
        Tests if the max occurs has been reached for this node.
        Specified by:
        isMaxOccursReached in interface Selector
        Parameters:
        context - the ParsingContext
        Returns:
        true if max occurs has been reached
      • getSize

        public int getSize()
        Description copied from interface: Parser
        Returns the size of a single occurrence of this element, which is used to offset field positions for repeating segments and fields.

        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.

        Specified by:
        getSize in interface Parser
        Returns:
        the size of this parser element
      • 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 interface Selector
        Parameters:
        namespace - a String to prefix all state keys with
        state - the Map to update with the latest state
        context - the ParsingContext
        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 interface Selector
        Parameters:
        namespace - a String to prefix all state keys with
        state - the Map containing the state to restore
        context - the ParsingContext
        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 key
        name - 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 interface Selector
        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 interface Selector
        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 interface Selector
        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).
        Specified by:
        getOrder in interface Selector
        Returns:
        the component order
      • 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 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
      • setValue

        public void setValue​(ParsingContext context,
                             java.lang.Object value)
        Description copied from interface: Parser
        Sets the property value for marshaling.
        Specified by:
        setValue in interface Parser
        Parameters:
        context - the ParsingContext
        value - the property value
      • getValue

        public java.lang.Object getValue​(ParsingContext context)
        Description copied from interface: Parser
        Returns the unmarshalled property value.
        Specified by:
        getValue in interface Parser
        Parameters:
        context - the ParsingContext
        Returns:
        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
      • setProperty

        public void setProperty​(Property property)
      • isOptional

        public boolean isOptional()
        Description copied from interface: Parser
        Returns whether this node must exist during unmarshalling.
        Specified by:
        isOptional in interface Parser
        Returns:
        true if this node is optional during unmarshalling, false otherwise
      • 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
        Returns:
        true if this parser or any descendant is used to identify a record
      • hasContent

        public boolean hasContent​(ParsingContext context)
        Description copied from interface: Parser
        Returns whether this parser or any of its descendant have content for marshalling.
        Specified by:
        hasContent in interface Parser
        Parameters:
        context - the ParsingContext
        Returns:
        true if there is content for marshalling, false otherwise
      • 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 class Component
        Parameters:
        locals - set of local variables