Class FieldConversionMapping
- java.lang.Object
-
- com.univocity.parsers.common.fields.FieldConversionMapping
-
- All Implemented Interfaces:
java.lang.Cloneable
public class FieldConversionMapping extends java.lang.Object implements java.lang.CloneableA class for mapping field selections to sequences ofConversionobjects
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<java.lang.Integer,java.util.List<Conversion<?,?>>>conversionsByIndexThis is the final sequence of conversions applied to each index in a record.private java.util.List<FieldSelector>conversionSequenceThis list contains the sequence of conversions applied to sets of fields over multiple calls.private AbstractConversionMapping<java.lang.Integer>convertAllMappingprivate static Conversion[]EMPTY_CONVERSION_ARRAYprivate AbstractConversionMapping<java.lang.Enum>fieldEnumConversionMappingprivate AbstractConversionMapping<java.lang.Integer>fieldIndexConversionMappingprivate AbstractConversionMapping<java.lang.String>fieldNameConversionMappingint[]validatedIndexesprivate java.util.Map<java.lang.Integer,java.util.List<ValidatedConversion>>validationsByIndex
-
Constructor Summary
Constructors Constructor Description FieldConversionMapping()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.ObjectapplyConversions(int index, java.lang.String stringValue, boolean[] convertedFlags)Applies a sequence of conversions associated with a String value parsed from a given index.voidapplyConversionsOnAllFields(Conversion<java.lang.String,?>... conversions)Applies a sequence of conversions on all fields.FieldSet<java.lang.Enum>applyConversionsOnFieldEnums(Conversion<java.lang.String,?>... conversions)Applies a sequence of conversions on a selection of enumerations that represent fieldsFieldSet<java.lang.Integer>applyConversionsOnFieldIndexes(Conversion<java.lang.String,?>... conversions)Applies a sequence of conversions on a selection of field indexesFieldSet<java.lang.String>applyConversionsOnFieldNames(Conversion<java.lang.String,?>... conversions)Applies a sequence of conversions on a selection of field nameFieldConversionMappingclone()voidexecuteValidations(int index, java.lang.Object value)Applies any validations associated with a field at a given index in a recordConversion[]getConversions(int index, java.lang.Class<?> expectedType)Returns the sequence of conversions to be applied at a given column indexvoidprepareExecution(boolean writing, java.lang.String[] values)Prepares the conversions registered in this object to be executed against a given sequence of fieldsjava.lang.ObjectreverseConversions(boolean executeInReverseOrder, int index, java.lang.Object value, boolean[] convertedFlags)Applies a sequence of conversions associated with an Object value at a given index in a record.
-
-
-
Field Detail
-
EMPTY_CONVERSION_ARRAY
private static final Conversion[] EMPTY_CONVERSION_ARRAY
-
validatedIndexes
public int[] validatedIndexes
-
conversionSequence
private java.util.List<FieldSelector> conversionSequence
This list contains the sequence of conversions applied to sets of fields over multiple calls.It is shared by
fieldNameConversionMapping,fieldIndexConversionMappingandconvertAllMapping.Every time the user associates a sequence of conversions to a field, conversionSequence list will receive the FieldSelector.
-
fieldNameConversionMapping
private AbstractConversionMapping<java.lang.String> fieldNameConversionMapping
-
fieldIndexConversionMapping
private AbstractConversionMapping<java.lang.Integer> fieldIndexConversionMapping
-
fieldEnumConversionMapping
private AbstractConversionMapping<java.lang.Enum> fieldEnumConversionMapping
-
convertAllMapping
private AbstractConversionMapping<java.lang.Integer> convertAllMapping
-
conversionsByIndex
private java.util.Map<java.lang.Integer,java.util.List<Conversion<?,?>>> conversionsByIndex
This is the final sequence of conversions applied to each index in a record. It is populated whenprepareExecution(boolean, String[])is invoked.
-
validationsByIndex
private java.util.Map<java.lang.Integer,java.util.List<ValidatedConversion>> validationsByIndex
-
-
Method Detail
-
prepareExecution
public void prepareExecution(boolean writing, java.lang.String[] values)Prepares the conversions registered in this object to be executed against a given sequence of fields- Parameters:
writing- flag indicating whether a writing process is being initialized.values- The field sequence that identifies how records will be organized.This is generally the sequence of headers in a record, but it might be just the first parsed row from a given input (as field selection by index is allowed).
-
applyConversionsOnAllFields
public void applyConversionsOnAllFields(Conversion<java.lang.String,?>... conversions)
Applies a sequence of conversions on all fields.- Parameters:
conversions- the sequence of conversions to be applied
-
applyConversionsOnFieldIndexes
public FieldSet<java.lang.Integer> applyConversionsOnFieldIndexes(Conversion<java.lang.String,?>... conversions)
Applies a sequence of conversions on a selection of field indexes- Parameters:
conversions- the sequence of conversions to be applied- Returns:
- a selector of column indexes.
-
applyConversionsOnFieldNames
public FieldSet<java.lang.String> applyConversionsOnFieldNames(Conversion<java.lang.String,?>... conversions)
Applies a sequence of conversions on a selection of field name- Parameters:
conversions- the sequence of conversions to be applied- Returns:
- a selector of column names.
-
applyConversionsOnFieldEnums
public FieldSet<java.lang.Enum> applyConversionsOnFieldEnums(Conversion<java.lang.String,?>... conversions)
Applies a sequence of conversions on a selection of enumerations that represent fields- Parameters:
conversions- the sequence of conversions to be applied- Returns:
- a selector of enumerations.
-
executeValidations
public void executeValidations(int index, java.lang.Object value)Applies any validations associated with a field at a given index in a record- Parameters:
index- The index of parsed value in a recordvalue- The value of the record at the given index
-
reverseConversions
public java.lang.Object reverseConversions(boolean executeInReverseOrder, int index, java.lang.Object value, boolean[] convertedFlags)Applies a sequence of conversions associated with an Object value at a given index in a record.- Parameters:
executeInReverseOrder- flag to indicate whether or not the conversion sequence must be executed in reverse orderindex- The index of parsed value in a recordvalue- The value in a recordconvertedFlags- an array of flags that indicate whether a conversion occurred. Used to determine whether or not a default conversion by type (specified withConversionProcessor.convertType(Class, Conversion[])) should be applied.- Returns:
- the Object resulting from a sequence of conversions against the original value.
-
applyConversions
public java.lang.Object applyConversions(int index, java.lang.String stringValue, boolean[] convertedFlags)Applies a sequence of conversions associated with a String value parsed from a given index.- Parameters:
index- The index of parsed value in a recordstringValue- The parsed value in a recordconvertedFlags- an array of flags that indicate whether a conversion occurred. Used to determine whether or not a default conversion by type (specified withConversionProcessor.convertType(Class, Conversion[])) should be applied.- Returns:
- the Object produced by a sequence of conversions against the original String value.
-
getConversions
public Conversion[] getConversions(int index, java.lang.Class<?> expectedType)
Returns the sequence of conversions to be applied at a given column index- Parameters:
index- the index of the column where the conversions should be executedexpectedType- the type resulting from the conversion sequence.- Returns:
- the sequence of conversions to be applied at a given column index
-
clone
public FieldConversionMapping clone()
- Overrides:
clonein classjava.lang.Object
-
-