Interface ColumnMapper
- All Superinterfaces:
Cloneable
- All Known Implementing Classes:
ColumnMapping
A utility that allows users to manually define mappings from
attributes/methods of a given class to columns to be parsed or written.
This removes the requirement of having classes annotated with
Parsed
or
Nested
.
Mappings defined manually take precedence over annotations.- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoid
attributesToColumnNames
(Map<String, String> mappings) Maps multiple attributes to multiple column names.void
attributesToColumns
(Map<String, Enum<?>> mappings) Maps multiple attributes to multiple columns.void
attributesToIndexes
(Map<String, Integer> mappings) Maps multiple attributes to multiple column positions.void
attributeToColumn
(String attributeName, Enum<?> column) Maps an attribute to a column.void
attributeToColumnName
(String attributeName, String columnName) Maps an attribute to a column name.void
attributeToIndex
(String attributeName, int columnIndex) Maps an attribute to a column position.clone()
Creates a deep copy of this object with all its mappings.void
methodsToColumnNames
(Map<String, String> mappings) Maps multiple methods to multiple column names.void
methodsToColumns
(Map<String, Enum<?>> mappings) Maps multiple methods to multiple columns.void
methodsToIndexes
(Map<String, Integer> mappings) Maps multiple methods to multiple column positions.void
methodToColumn
(String setterName, Class<?> parameterType, Enum<?> column) Maps a setter method to a column.void
methodToColumn
(String methodName, Enum<?> column) Maps a method to a column.void
methodToColumnName
(String setterName, Class<?> parameterType, String columnName) Maps a setter method to a column name.void
methodToColumnName
(String methodName, String columnName) Maps a method to a column name.void
methodToIndex
(String methodName, int columnIndex) Maps a method to a column position.void
methodToIndex
(String setterName, Class<?> parameterType, int columnIndex) Maps a setter method to a column position.void
Removes any mappings that target a given method or attribute name.
-
Method Details
-
attributeToColumnName
Maps an attribute to a column name.- Parameters:
attributeName
- the name of the attribute. Use the dot character to access attributes of nested objects, e.g.contact.mobile
will 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
Maps an attribute to a column.- Parameters:
attributeName
- the name of the attribute. Use the dot character to access attributes of nested objects, e.g.contact.mobile
will 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
Maps an attribute to a column position.- Parameters:
attributeName
- the name of the attribute. Use the dot character to access attributes of nested objects, e.g.contact.mobile
will 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
Maps multiple attributes to multiple column names.- 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.mobile
will 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
Maps multiple attributes to multiple columns.- 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.mobile
will 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
Maps multiple attributes to multiple column positions.- 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.mobile
will 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.
-
methodToColumnName
Maps a setter method to a column name. Use whenmethodToColumnName(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.- Parameters:
setterName
- the name of the setter method. Use the dot character to access methods of nested objects, e.g.contact.mobile
will 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
Maps a setter method to a column. Use whenmethodToColumnName(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.- Parameters:
setterName
- the name of the setter method. Use the dot character to access methods of nested objects, e.g.contact.mobile
will 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
Maps a setter method to a column position. Use whenmethodToColumnName(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.- Parameters:
setterName
- the name of the setter method. Use the dot character to access methods of nested objects, e.g.contact.mobile
will 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
-
methodToColumnName
Maps 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, usemethodToColumnName(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.- Parameters:
methodName
- the name of the method. Use the dot character to access methods of nested objects, e.g.contact.mobile
will 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
Maps 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, usemethodToColumnName(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.- Parameters:
methodName
- the name of the method. Use the dot character to access methods of nested objects, * e.g.contact.mobile
will 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
Maps 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, usemethodToColumnName(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.- Parameters:
methodName
- the name of the method. Use the dot character to access methods of nested objects, * e.g.contact.mobile
will 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
Maps multiple methods to multiple column names.- 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.mobile
will 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
Maps multiple methods to multiple columns.- 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.mobile
will 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
Maps multiple methods to multiple column positions.- 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.mobile
will 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.
-
clone
ColumnMapper clone()Creates a deep copy of this object with all its mappings. Changes to the clone won't affect the original instance.- Returns:
- a clone of the current mappings.
-
remove
Removes any mappings that target a given method or attribute name.- Parameters:
methodOrAttributeName
- the name of the method or attribute to be removed.
-