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:
  • Field Details

    • rows

      private List<Object[]> rows
    • headers

      private String[] headers
    • expectedRowCount

      private final int expectedRowCount
  • Constructor Details

    • 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 Details

    • 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(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 List<Object[]> getRows()
      Returns the list of parsed and converted records
      Returns:
      the list of parsed and converted records
    • getHeaders

      public 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.