Class AbstractColumnMapping<K>

java.lang.Object
com.univocity.parsers.common.fields.AbstractColumnMapping<K>
Type Parameters:
K - the type of key (attribute/method names or specific method definition with parameter and return types)
All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
ColumnMapping.MethodMapping, ColumnMapping.NameMapping

abstract class AbstractColumnMapping<K> extends Object implements Cloneable
Basic support operations for mapping attributes/methods to columns in a ColumnMapper
  • Field Details

  • Constructor Details

    • AbstractColumnMapping

      AbstractColumnMapping(String prefix, AbstractColumnMapping parent)
      Creates a mapping with a prefix.
      Parameters:
      prefix - a dot separated sequence of names that represents the nesting of complex attributes inside a class (e.g customer.contact.phone).
      parent - the parent mapping of columns, relevant only when nested objects' attributes or methods are being mapped.
  • Method Details

    • mapToColumnName

      void mapToColumnName(K key, String columnName)
      Maps a attribute or method to a column name
      Parameters:
      key - attribute/method name or specific method definition with parameter and return type
      columnName - name of column associated with the given key
    • mapToColumn

      void mapToColumn(K key, Enum<?> column)
      Maps a attribute or method to a column name
      Parameters:
      key - attribute/method name or specific method definition with parameter and return type
      column - enumeration representing the column associated with the given key
    • mapToColumnIndex

      void mapToColumnIndex(K key, int columnIndex)
      Maps a attribute or method to a column name
      Parameters:
      key - attribute/method name or specific method definition with parameter and return type
      columnIndex - number representing the position of the column associated with the given key
    • mapToColumnNames

      void mapToColumnNames(Map<K,String> mappings)
      Maps multiple attributes or methods to multiple column names
      Parameters:
      mappings - the mappings to be added
    • mapToColumns

      void mapToColumns(Map<K,Enum<?>> mappings)
      Maps multiple attributes or methods to multiple column names
      Parameters:
      mappings - the mappings to be added
    • mapToColumnIndexes

      void mapToColumnIndexes(Map<K,Integer> mappings)
      Maps multiple attributes or methods to multiple column names
      Parameters:
      mappings - the mappings to be added
    • isMapped

      boolean isMapped(K key)
      Tests whether a given attribute or method is mapped to a column
      Parameters:
      key - the attribute or method name/descriptor
      Returns:
      true if the key is mapped.
    • prefixKey

      abstract K prefixKey(String prefix, K key)
      Transforms the key so it can work with the given prefix.
      Parameters:
      prefix - the current object nesting level, denoted by a dot-separated string of nested attribute names.
      key - the key to transform.
      Returns:
      the transformed key or null if the key can't be used with the given prefix
    • getMappedColumn

      private Object getMappedColumn(K key)
    • updateFieldMapping

      boolean updateFieldMapping(FieldMapping fieldMapping, K key)
      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 column
      key - the attribute name or method specification that matches with the given field.
      Returns:
      true if the mapping has been successfully updated.
    • extractPrefixes

      void extractPrefixes(Set<String> out)
      Returns all prefixes used by the keys in this mapping. These represent names of nested objects that will be navigated through to access their attributes/methods.
      Parameters:
      out - the set of prefixes to populate.
    • getKeyPrefix

      abstract String getKeyPrefix(String prefix, K key)
      Returns the prefix of a given key, i.e. the current nested object that is being targeted.
      Parameters:
      prefix - the current prefix - a dot separated string with nested attribute names
      key - the attribute name or method definition. If its own prefix starts with the given prefix, the next element after the dot will be returned (if any)
      Returns:
      the name of the next nested object relative to the current prefix.
    • clone

      public AbstractColumnMapping<K> clone()
      Creates a deep copy of this mapping that is independent from the original.
      Overrides:
      clone in class Object
      Returns:
      the duplicate of this object.
    • findKey

      abstract K findKey(String nameWithPrefix)
      Locates a given key based on an attribute or method name.
      Parameters:
      nameWithPrefix - name of the attribute or method, prefixed with nested object names that identify the path to the target class member.
      Returns:
      the key formed with the given attribute name or method definition
    • remove

      void remove(String nameWithPrefix)
      Removes any mappings containing keys that have a given attribute or method name.
      Parameters:
      nameWithPrefix - name of the attribute or method, prefixed with nested object names that identify the path to the target class member.