com.univocity.parsers.common.processor.core
Class AbstractMasterDetailListProcessor<T extends Context>

java.lang.Object
  extended by com.univocity.parsers.common.DefaultConversionProcessor
      extended by com.univocity.parsers.common.processor.core.AbstractObjectProcessor<T>
          extended by com.univocity.parsers.common.processor.core.AbstractMasterDetailProcessor<T>
              extended by com.univocity.parsers.common.processor.core.AbstractMasterDetailListProcessor<T>
All Implemented Interfaces:
ConversionProcessor, Processor<T>
Direct Known Subclasses:
MasterDetailListProcessor

public abstract class AbstractMasterDetailListProcessor<T extends Context>
extends AbstractMasterDetailProcessor<T>

A convenience Processor implementation for storing all MasterDetailRecord generated form the parsed input into a list. A typical use case of this class will be:


ObjectRowListProcessor detailProcessor = new ObjectRowListProcessor();
 MasterDetailListProcessor masterRowProcessor = new MasterDetailListProcessor(detailProcessor) {
      protected boolean isMasterRecord(String[] row, ParsingContext context) {
          return "Total".equals(row[0]);
      }
 };

 parserSettings.setRowProcessor(masterRowProcessor);

 List&lt;MasterDetailRecord&gt; rows = masterRowProcessor.getRecords();
 

Author:
uniVocity Software Pty Ltd - parsers@univocity.com
See Also:
AbstractMasterDetailProcessor, Processor, AbstractParser

Constructor Summary
AbstractMasterDetailListProcessor(AbstractObjectListProcessor detailProcessor)
          Creates a MasterDetailListProcessor assuming master records are positioned above its detail records in the input.
AbstractMasterDetailListProcessor(RowPlacement rowPlacement, AbstractObjectListProcessor detailProcessor)
          Creates a MasterDetailListProcessor
 
Method Summary
 String[] getHeaders()
          Returns the record headers.
 List<MasterDetailRecord> getRecords()
          Returns the list of generated MasterDetailRecords at the end of the parsing process.
protected  void masterDetailRecordProcessed(MasterDetailRecord record, T context)
          Stores the generated MasterDetailRecord with the set of associated parsed records into a list.
 void processEnded(T context)
          This method will by invoked by the parser once, after the parsing process stopped and all resources were closed.
 
Methods inherited from class com.univocity.parsers.common.processor.core.AbstractMasterDetailProcessor
isMasterRecord, processStarted, rowProcessed, rowProcessed
 
Methods inherited from class com.univocity.parsers.common.DefaultConversionProcessor
applyConversions, convertAll, convertFields, convertIndexes, convertType, handleConversionError, reverseConversions
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractMasterDetailListProcessor

public AbstractMasterDetailListProcessor(RowPlacement rowPlacement,
                                         AbstractObjectListProcessor detailProcessor)
Creates a MasterDetailListProcessor

Parameters:
rowPlacement - indication whether the master records are placed in relation its detail records in the input.

 Master record (Totals)       Master record (Totals)
  above detail records         under detail records

    Totals | 100                 Item   | 60
    Item   | 60                  Item   | 40
    Item   | 40                  Totals | 100
 

detailProcessor - the ObjectRowListProcessor that processes detail rows.

AbstractMasterDetailListProcessor

public AbstractMasterDetailListProcessor(AbstractObjectListProcessor detailProcessor)
Creates a MasterDetailListProcessor assuming master records are positioned above its detail records in the input.

Parameters:
detailProcessor - the ObjectRowListProcessor that processes detail rows.
Method Detail

masterDetailRecordProcessed

protected void masterDetailRecordProcessed(MasterDetailRecord record,
                                           T context)
Stores the generated MasterDetailRecord with the set of associated parsed records into a list.

Specified by:
masterDetailRecordProcessed in class AbstractMasterDetailProcessor<T extends Context>
Parameters:
record - MasterDetailRecord generated with a set of associated records extracted by the parser
context - A contextual object with information and controls over the current state of the parsing process
See Also:
MasterDetailRecord

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 AbstractMasterDetailProcessor<T extends Context>
Parameters:
context - A contextual object with information and controls over the state of the parsing process

getRecords

public List<MasterDetailRecord> getRecords()
Returns the list of generated MasterDetailRecords at the end of the parsing process.

Returns:
the list of generated MasterDetailRecords at the end of the parsing process.

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.


Copyright © 2016 uniVocity Software Pty Ltd. All rights reserved.