public abstract class AbstractObjectListProcessor<T extends Context> extends AbstractObjectProcessor<T>
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<Object[]> rows = rowProcessor.getRows(); BigDecimal value1 = (BigDecimal) row.get(4); BigDecimal value2 = (BigDecimal) row.get(6);
AbstractParser,
Processor,
AbstractProcessor,
AbstractObjectProcessor| Modifier and Type | Field and Description |
|---|---|
private int |
expectedRowCount |
private java.lang.String[] |
headers |
private java.util.List<java.lang.Object[]> |
rows |
conversions| Constructor and Description |
|---|
AbstractObjectListProcessor()
Creates a new processor of
Object[] rows with varying types. |
AbstractObjectListProcessor(int expectedRowCount)
Creates a new processor of
Object[] rows with varying types. |
| Modifier and Type | Method and Description |
|---|---|
java.lang.String[] |
getHeaders()
Returns the record headers.
|
java.util.List<java.lang.Object[]> |
getRows()
Returns the list of parsed and converted records
|
void |
processEnded(T context)
This method will by invoked by the parser once, after the parsing process stopped and all resources were closed.
|
void |
processStarted(T context)
This method will by invoked by the parser once, when it is ready to start processing the input.
|
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.
|
rowProcessedapplyConversions, convertAll, convertFields, convertIndexes, convertType, handleConversionError, initializeConversions, reverseConversions, toDataProcessingExceptionprivate java.util.List<java.lang.Object[]> rows
private java.lang.String[] headers
private final int expectedRowCount
public AbstractObjectListProcessor()
Object[] rows with varying types.public AbstractObjectListProcessor(int expectedRowCount)
Object[] rows with varying types.expectedRowCount - expected number of rows to be parsed from the input.
Used to pre-allocate the size of the output List returned by getRows()public void processStarted(T context)
ProcessorprocessStarted in interface Processor<T extends Context>processStarted in class AbstractObjectProcessor<T extends Context>context - A contextual object with information and controls over the current state of the parsing processpublic void rowProcessed(java.lang.Object[] row,
T context)
rowProcessed in class AbstractObjectProcessor<T extends Context>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 processpublic void processEnded(T context)
Processor 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().
processEnded in interface Processor<T extends Context>processEnded in class AbstractObjectProcessor<T extends Context>context - A contextual object with information and controls over the state of the parsing processpublic java.util.List<java.lang.Object[]> getRows()
public java.lang.String[] getHeaders()
CommonSettings.getHeaders() or the headers parsed in the file when CommonSettings.getHeaders() equals true