Class AbstractObjectListProcessor<T extends Context>

  • All Implemented Interfaces:
    ConversionProcessor, Processor<T>
    Direct Known Subclasses:
    ObjectRowListProcessor

    public abstract class AbstractObjectListProcessor<T extends Context>
    extends AbstractObjectProcessor<T>
    A convenience Processor implementation for storing all rows parsed and converted to Object arrays into a list. A typical use case of this class will be:
    
    
     ObjectRowListProcessor processor = new ObjectRowListProcessor();
     processor.convertIndexes(Conversions.toBigDecimal()).set(4, 6);
     parserSettings.setRowProcessor(new ObjectRowListProcessor());
     parser.parse(reader); // will invoke the {@link AbstractObjectListProcessor#rowProcessed(Object[], T)} method for each parsed record.
    
     String[] headers = rowProcessor.getHeaders();
     List&lt;Object[]&gt; rows = rowProcessor.getRows();
     BigDecimal value1 = (BigDecimal) row.get(4);
     BigDecimal value2 = (BigDecimal) row.get(6);
     

    See Also:
    AbstractParser, Processor, AbstractProcessor, AbstractObjectProcessor
    • Field Detail

      • rows

        private java.util.List<java.lang.Object[]> rows
      • headers

        private java.lang.String[] headers
      • expectedRowCount

        private final int expectedRowCount
    • Constructor Detail

      • AbstractObjectListProcessor

        public AbstractObjectListProcessor()
        Creates a new processor of Object[] rows with varying types.
      • AbstractObjectListProcessor

        public AbstractObjectListProcessor​(int expectedRowCount)
        Creates a new processor of Object[] rows with varying types.
        Parameters:
        expectedRowCount - expected number of rows to be parsed from the input. Used to pre-allocate the size of the output List returned by getRows()
    • Method Detail

      • processStarted

        public void processStarted​(T context)
        Description copied from interface: Processor
        This method will by invoked by the parser once, when it is ready to start processing the input.
        Specified by:
        processStarted in interface Processor<T extends Context>
        Overrides:
        processStarted in class AbstractObjectProcessor<T extends Context>
        Parameters:
        context - A contextual object with information and controls over the current state of the parsing process
      • rowProcessed

        public void rowProcessed​(java.lang.Object[] row,
                                 T context)
        Stores the row extracted by the parser and them converted to an Object array into a list.
        Specified by:
        rowProcessed in class AbstractObjectProcessor<T extends Context>
        Parameters:
        row - the data extracted by the parser for an individual record and converted to an Object array.
        context - A contextual object with information and controls over the current state of the parsing process
      • processEnded

        public void processEnded​(T context)
        Description copied from interface: Processor
        This method will by invoked by the parser once, after the parsing process stopped and all resources were closed.

        It will always be called by the parser: in case of errors, if the end of the input us reached, or if the user stopped the process manually using Context.stop().

        Specified by:
        processEnded in interface Processor<T extends Context>
        Overrides:
        processEnded in class AbstractObjectProcessor<T extends Context>
        Parameters:
        context - A contextual object with information and controls over the state of the parsing process
      • getRows

        public java.util.List<java.lang.Object[]> getRows()
        Returns the list of parsed and converted records
        Returns:
        the list of parsed and converted records
      • getHeaders

        public java.lang.String[] getHeaders()
        Returns the record headers. This can be either the headers defined in CommonSettings.getHeaders() or the headers parsed in the file when CommonSettings.getHeaders() equals true
        Returns:
        the headers of all records parsed.