Class ColumnMapping
java.lang.Object
com.univocity.parsers.common.fields.ColumnMapping
- All Implemented Interfaces:
ColumnMapper,Cloneable
Implementation the
ColumnMapper interface which allows
users to manually define mappings from attributes/methods of a given class
to columns to be parsed or written.- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a new column mapping instanceColumnMapping(String prefix, ColumnMapping parent) Creates a nested column mapping instance for handling nested attributes. -
Method Summary
Modifier and TypeMethodDescriptionvoidattributesToColumnNames(Map<String, String> mappings) Maps multiple attributes to multiple column names.voidattributesToColumns(Map<String, Enum<?>> mappings) Maps multiple attributes to multiple columns.voidattributesToIndexes(Map<String, Integer> mappings) Maps multiple attributes to multiple column positions.voidattributeToColumn(String attributeName, Enum<?> column) Maps an attribute to a column.voidattributeToColumnName(String attributeName, String columnName) Maps an attribute to a column name.voidattributeToIndex(String attributeName, int columnIndex) Maps an attribute to a column position.clone()Creates a deep copy of this object with all its mappings.Returns the first-level names of all nested members whose attributes or methods have been mappedReturns object the nesting path associated with the current mapping.booleanisMapped(MethodDescriptor method, String targetName) Tests whether a method or attribute has been mapped to a column.voidmethodsToColumnNames(Map<String, String> mappings) Maps multiple methods to multiple column names.voidmethodsToColumns(Map<String, Enum<?>> mappings) Maps multiple methods to multiple columns.voidmethodsToIndexes(Map<String, Integer> mappings) Maps multiple methods to multiple column positions.voidmethodToColumn(String setterName, Class<?> parameterType, Enum<?> column) Maps a setter method to a column.voidmethodToColumn(String methodName, Enum<?> column) Maps a method to a column.voidmethodToColumnName(String setterName, Class<?> parameterType, String columnName) Maps a setter method to a column name.voidmethodToColumnName(String methodName, String columnName) Maps a method to a column name.voidmethodToIndex(String methodName, int columnIndex) Maps a method to a column position.voidmethodToIndex(String setterName, Class<?> parameterType, int columnIndex) Maps a setter method to a column position.voidRemoves any mappings that target a given method or attribute name.booleanupdateMapping(FieldMapping fieldMapping, String targetName, MethodDescriptor method) Updates the mapping of a attribute/method so a mapped class member can target a user provided column.
-
Constructor Details
-
ColumnMapping
public ColumnMapping()Creates a new column mapping instance -
ColumnMapping
Creates a nested column mapping instance for handling nested attributes. For internal use.- Parameters:
prefix- the current nesting path, denoted by a dot separated string of attribute namesparent- the mappings of the parent object in the nested structure.
-
-
Method Details
-
attributeToColumnName
Description copied from interface:ColumnMapperMaps an attribute to a column name.- Specified by:
attributeToColumnNamein interfaceColumnMapper- Parameters:
attributeName- the name of the attribute. Use the dot character to access attributes of nested objects, e.g.contact.mobilewill target the attribute "mobile" from a Contact attribute inside a Customer class.columnName- the name of the column that: (a) when parsing, will be read from to populate the given attribute of an object; (b) when writing, will receive the value of the given attribute of an object;
-
attributeToColumn
Description copied from interface:ColumnMapperMaps an attribute to a column.- Specified by:
attributeToColumnin interfaceColumnMapper- Parameters:
attributeName- the name of the attribute. Use the dot character to access attributes of nested objects, e.g.contact.mobilewill target the attribute "mobile" from a Contact attribute inside a Customer class.column- an enumeration representing the column that: (a) when parsing, will be read from to populate the given attribute of an object; (b) when writing, will receive the value of the given attribute of an object;
-
attributeToIndex
Description copied from interface:ColumnMapperMaps an attribute to a column position.- Specified by:
attributeToIndexin interfaceColumnMapper- Parameters:
attributeName- the name of the attribute. Use the dot character to access attributes of nested objects, e.g.contact.mobilewill target the attribute "mobile" from a Contact attribute inside a Customer class.columnIndex- the position of the column that: (a) when parsing, will be read from to populate the given attribute of an object; (b) when writing, will receive the value of the given attribute of an object;
-
attributesToColumnNames
Description copied from interface:ColumnMapperMaps multiple attributes to multiple column names.- Specified by:
attributesToColumnNamesin interfaceColumnMapper- Parameters:
mappings- a map of attribute names associated with a corresponding column name, where:- Each key is the name of the attribute. Use the dot character to access attributes of nested objects,
e.g.
contact.mobilewill target the attribute "mobile" from a Contact attribute inside a Customer class. - Each value is the name of the column that: (a) when parsing, will be read from to populate the given attribute of an object; (b) when writing, will receive the value of the given attribute of an object;
- Each key is the name of the attribute. Use the dot character to access attributes of nested objects,
e.g.
-
attributesToColumns
Description copied from interface:ColumnMapperMaps multiple attributes to multiple columns.- Specified by:
attributesToColumnsin interfaceColumnMapper- Parameters:
mappings- a map of attribute names associated with a corresponding column, where:- Each key is the name of the attribute. Use the dot character to access attributes of nested objects,
e.g.
contact.mobilewill target the attribute "mobile" from a Contact attribute inside a Customer class. - Each value is an enumeration representing the column that: (a) when parsing, will be read from to populate the given attribute of an object; (b) when writing, will receive the value of the given attribute of an object;
- Each key is the name of the attribute. Use the dot character to access attributes of nested objects,
e.g.
-
attributesToIndexes
Description copied from interface:ColumnMapperMaps multiple attributes to multiple column positions.- Specified by:
attributesToIndexesin interfaceColumnMapper- Parameters:
mappings- a map of attribute names associated with a corresponding column, where:- Each key is the name of the attribute. Use the dot character to access attributes of nested objects,
e.g.
contact.mobilewill target the attribute "mobile" from a Contact attribute inside a Customer class. - Each value is an integer representing the position of the column that: (a) when parsing, will be read from to populate the given attribute of an object; (b) when writing, will receive the value of the given attribute of an object;
- Each key is the name of the attribute. Use the dot character to access attributes of nested objects,
e.g.
-
isMapped
Tests whether a method or attribute has been mapped to a column.- Parameters:
method- a descriptor of getter/setter methods (can benull)targetName- name of a method or attribute- Returns:
trueif the given method or attribute has been mapped to a column
-
updateMapping
Updates the mapping of a attribute/method so a mapped class member can target a user provided column.- Parameters:
fieldMapping- a class member that has should be mapped to a columntargetName- name of a method or attributemethod- a descriptor of getter/setter methods (can benull)- Returns:
trueif the mapping has been successfully updated.
-
getPrefix
Returns object the nesting path associated with the current mapping.- Returns:
- a dot separated string of nested attribute names
-
methodToColumnName
Description copied from interface:ColumnMapperMaps a method to a column name. When parsing, only "setter" methods will be used i.e. the given method accepts one parameter. If the method is overridden, useColumnMapper.methodToColumnName(String, Class, String)to specify the exact parameter type to match the appropriate setter method. When writing, only "getter" methods will be used i.e. the given method doesn't accept any parameters and returns a value.- Specified by:
methodToColumnNamein interfaceColumnMapper- Parameters:
methodName- the name of the method. Use the dot character to access methods of nested objects, e.g.contact.mobilewill target the method "mobile(String)" when parsing, or "String mobile()" when writing, from a Contact attribute inside a Customer class.columnName- the name of the column that: (a) when parsing, will be read from to invoke given setter method of an object; (b) when writing, will receive the value returned by the given getter method of an object;
-
methodToColumn
Description copied from interface:ColumnMapperMaps a method to a column. When parsing, only "setter" methods will be used i.e. the given method accepts one parameter. If the method is overridden, useColumnMapper.methodToColumnName(String, Class, String)to specify the exact parameter type to match the appropriate setter method. When writing, only "getter" methods will be used i.e. the given method doesn't accept any parameters and returns a value.- Specified by:
methodToColumnin interfaceColumnMapper- Parameters:
methodName- the name of the method. Use the dot character to access methods of nested objects, * e.g.contact.mobilewill target the method "mobile(String)" when parsing, or "String mobile()" when writing, * from a Contact attribute inside a Customer class.column- an enumeration representing the column that: (a) when parsing, will be read from to invoke given setter method of an object; (b) when writing, will receive the value returned by the given getter method of an object;
-
methodToIndex
Description copied from interface:ColumnMapperMaps a method to a column position. When parsing, only "setter" methods will be used i.e. the given method accepts one parameter. If the method is overridden, useColumnMapper.methodToColumnName(String, Class, String)to specify the exact parameter type to match the appropriate setter method. When writing, only "getter" methods will be used i.e. the given method doesn't accept any parameters and returns a value.- Specified by:
methodToIndexin interfaceColumnMapper- Parameters:
methodName- the name of the method. Use the dot character to access methods of nested objects, * e.g.contact.mobilewill target the method "mobile(String)" when parsing, or "String mobile()" when writing, * from a Contact attribute inside a Customer class.columnIndex- the position of the column that: (a) when parsing, will be read from to invoke given setter method of an object; (b) when writing, will receive the value returned by the given getter method of an object;
-
methodsToColumnNames
Description copied from interface:ColumnMapperMaps multiple methods to multiple column names.- Specified by:
methodsToColumnNamesin interfaceColumnMapper- Parameters:
mappings- a map of methods names associated with a corresponding column name, where:- Each key is the name of a method. Use the dot character to access attributes of nested objects,
e.g.
contact.mobilewill target the method "mobile(String)" when parsing, or "String mobile()" when writing, from a Contact attribute inside a Customer class. - Each value is the name of the column that: (a) when parsing, will be read from to invoke given setter method of an object; (b) when writing, will receive the value returned by the given getter method of an object;
- Each key is the name of a method. Use the dot character to access attributes of nested objects,
e.g.
-
methodsToColumns
Description copied from interface:ColumnMapperMaps multiple methods to multiple columns.- Specified by:
methodsToColumnsin interfaceColumnMapper- Parameters:
mappings- a map of methods names associated with a corresponding column, where:- Each key is the name of a method. Use the dot character to access attributes of nested objects,
e.g.
contact.mobilewill target the method "mobile(String)" when parsing, or "String mobile()" when writing, from a Contact attribute inside a Customer class. - Each value is an enumeration representing the column that: (a) when parsing, will be read from to invoke given setter method of an object; (b) when writing, will receive the value returned by the given getter method of an object;
- Each key is the name of a method. Use the dot character to access attributes of nested objects,
e.g.
-
methodsToIndexes
Description copied from interface:ColumnMapperMaps multiple methods to multiple column positions.- Specified by:
methodsToIndexesin interfaceColumnMapper- Parameters:
mappings- a map of methods names associated with a corresponding column position, where:- Each key is the name of a method. Use the dot character to access attributes of nested objects,
e.g.
contact.mobilewill target the method "mobile(String)" when parsing, or "String mobile()" when writing, from a Contact attribute inside a Customer class. - Each value is an integer representing the position of the column that: (a) when parsing, will be read from to invoke given setter method of an object; (b) when writing, will receive the value returned by the given getter method of an object;
- Each key is the name of a method. Use the dot character to access attributes of nested objects,
e.g.
-
remove
Description copied from interface:ColumnMapperRemoves any mappings that target a given method or attribute name.- Specified by:
removein interfaceColumnMapper- Parameters:
methodOrAttributeName- the name of the method or attribute to be removed.
-
methodToColumnName
Description copied from interface:ColumnMapperMaps a setter method to a column name. Use whenColumnMapper.methodToColumnName(String, String)is not enough to uniquely identify the method you need (e.g. when there are overloaded methods with different parameter types) Used only for parsing. Will be ignored when writing.- Specified by:
methodToColumnNamein interfaceColumnMapper- Parameters:
setterName- the name of the setter method. Use the dot character to access methods of nested objects, e.g.contact.mobilewill target the setter method "mobile(String)" from a Contact attribute inside a Customer class.parameterType- the type of the parameter used in the given setter name.columnName- the name of the column that when parsing, will be read from to invoke given setter method of an object
-
methodToColumn
Description copied from interface:ColumnMapperMaps a setter method to a column. Use whenColumnMapper.methodToColumnName(String, String)is not enough to uniquely identify the method you need (e.g. when there are overloaded methods with different parameter types) Used only for parsing. Will be ignored when writing.- Specified by:
methodToColumnin interfaceColumnMapper- Parameters:
setterName- the name of the setter method. Use the dot character to access methods of nested objects, e.g.contact.mobilewill target the setter method "mobile(String)" from a Contact attribute inside a Customer class.parameterType- the type of the parameter used in the given setter name.column- an enumeration representing the column that when parsing, will be read from to invoke given setter method of an object
-
methodToIndex
Description copied from interface:ColumnMapperMaps a setter method to a column position. Use whenColumnMapper.methodToColumnName(String, String)is not enough to uniquely identify the method you need (e.g. when there are overloaded methods with different parameter types) Used only for parsing. Will be ignored when writing.- Specified by:
methodToIndexin interfaceColumnMapper- Parameters:
setterName- the name of the setter method. Use the dot character to access methods of nested objects, e.g.contact.mobilewill target the setter method "mobile(String)" from a Contact attribute inside a Customer class.parameterType- the type of the parameter used in the given setter name.columnIndex- the position of the column that when parsing, will be read from to invoke given setter method of an object
-
getNestedAttributeNames
Returns the first-level names of all nested members whose attributes or methods have been mapped- Returns:
- the names of nested objects to visit from the current object
-
clone
Description copied from interface:ColumnMapperCreates a deep copy of this object with all its mappings. Changes to the clone won't affect the original instance.- Specified by:
clonein interfaceColumnMapper- Overrides:
clonein classObject- Returns:
- a clone of the current mappings.
-