com.univocity.parsers.common
Class DefaultConversionProcessor

java.lang.Object
  extended by com.univocity.parsers.common.DefaultConversionProcessor
All Implemented Interfaces:
ConversionProcessor
Direct Known Subclasses:
BeanProcessor, BeanWriterProcessor, ObjectRowProcessor, ObjectRowWriterProcessor

public abstract class DefaultConversionProcessor
extends Object
implements ConversionProcessor

The base class for RowProcessor and RowWriterProcessor implementations that support value conversions provided by Conversion instances.

Author:
uniVocity Software Pty Ltd - [email protected]

Constructor Summary
DefaultConversionProcessor()
           
 
Method Summary
 Object[] applyConversions(String[] row, ParsingContext context)
          Executes the sequences of conversions defined using convertFields(Conversion...), convertIndexes(Conversion...) and convertAll(Conversion...), for every field in the given row.
 void convertAll(Conversion... conversions)
          Applies a set of Conversion objects over all elements of a record
 FieldSet<String> convertFields(Conversion... conversions)
          Applies a set of Conversion objects over fields of a record by name.
 FieldSet<Integer> convertIndexes(Conversion... conversions)
          Applies a set of Conversion objects over indexes of a record.
 void convertType(Class<?> type, Conversion... conversions)
          Applies a sequence of conversions over values of a given type.
protected  void handleConversionError(Throwable ex, Object[] row, int column)
           
 boolean reverseConversions(boolean executeInReverseOrder, Object[] row, String[] headers, int[] indexesToWrite)
          Executes the sequences of reverse conversions defined using convertFields(Conversion...), convertIndexes(Conversion...) and convertAll(Conversion...), for every field in the given row.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultConversionProcessor

public DefaultConversionProcessor()
Method Detail

convertIndexes

public final FieldSet<Integer> convertIndexes(Conversion... conversions)
Description copied from interface: ConversionProcessor
Applies a set of Conversion objects over indexes of a record.

The idiom to define which indexes should have these conversions applies is as follows:



 processor.convertIndexes(Conversions.trim(), Conversions.toUpperCase()).add(2, 5); // applies trim and uppercase conversions to fields in indexes 2 and 5
 

Specified by:
convertIndexes in interface ConversionProcessor
Parameters:
conversions - The sequence of conversions to be executed in a set of field indexes.
Returns:
A FieldSet for indexes.

convertAll

public final void convertAll(Conversion... conversions)
Description copied from interface: ConversionProcessor
Applies a set of Conversion objects over all elements of a record

Specified by:
convertAll in interface ConversionProcessor
Parameters:
conversions - The sequence of conversions to be executed in all elements of a record

convertFields

public final FieldSet<String> convertFields(Conversion... conversions)
Description copied from interface: ConversionProcessor
Applies a set of Conversion objects over fields of a record by name.

The idiom to define which fields should have these conversions applied is as follows:



 processor.convertFields(Conversions.trim(), Conversions.toUpperCase()).add("name", "position"); // applies trim and uppercase conversions to fields with headers "name" and "position"
 

Specified by:
convertFields in interface ConversionProcessor
Parameters:
conversions - The sequence of conversions to be executed in a set of field indexes.
Returns:
A FieldSet for field names.

applyConversions

public final Object[] applyConversions(String[] row,
                                       ParsingContext context)
Executes the sequences of conversions defined using convertFields(Conversion...), convertIndexes(Conversion...) and convertAll(Conversion...), for every field in the given row.

Each field will be transformed using the Conversion.execute(Object) method.

In general the conversions will process a String and convert it to some object value (such as booleans, dates, etc).

Parameters:
row - the parsed record with its individual records as extracted from the original input.
context - the current state of the parsing process.
Returns:
an row of Object instances containing the values obtained after the execution of all conversions.

Fields that do not have any conversion defined will just be copied to the object array into their original positions.


reverseConversions

public final boolean reverseConversions(boolean executeInReverseOrder,
                                        Object[] row,
                                        String[] headers,
                                        int[] indexesToWrite)
Executes the sequences of reverse conversions defined using convertFields(Conversion...), convertIndexes(Conversion...) and convertAll(Conversion...), for every field in the given row.

Each field will be transformed using the Conversion.revert(Object) method.

In general the conversions will process an Object (such as a Boolean, Date, etc), and convert it to a String representation.

Parameters:
executeInReverseOrder - flag to indicate whether the conversion sequence should be executed in the reverse order of its declaration.
row - the row of objects that will be converted
headers - All field names used to produce records in a given destination. May be null if no headers have been defined in CommonSettings.getHeaders()
indexesToWrite - The indexes of the headers that are actually being written. May be null if no fields have been selected using CommonSettings.selectFields(String...) or CommonSettings.selectIndexes(Integer...)
Returns:
true if the the row should be discarded

handleConversionError

protected final void handleConversionError(Throwable ex,
                                           Object[] row,
                                           int column)

convertType

public final void convertType(Class<?> type,
                              Conversion... conversions)
Description copied from interface: ConversionProcessor
Applies a sequence of conversions over values of a given type. Used for writing.

Specified by:
convertType in interface ConversionProcessor
Parameters:
type - the type over which a sequence of conversions should be applied
conversions - the sequence of conversions to apply over values of the given type.


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