Class FieldMapping


  • public class FieldMapping
    extends java.lang.Object
    A helper class with information about the location of an field annotated with Parsed in a record.
    • Constructor Summary

      Constructors 
      Constructor Description
      FieldMapping​(java.lang.Class<?> beanClass, java.lang.reflect.AnnotatedElement target, PropertyWrapper property, HeaderTransformer transformer, NormalizedString[] headers)
      Creates the mapping and identifies how it is mapped (by name or by index)
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean canWrite​(java.lang.Object instance)
      Queries whether this field mapping can be applied over a given object instance.
      private void determineFieldMapping​(HeaderTransformer transformer, NormalizedString[] headers)  
      boolean equals​(java.lang.Object o)  
      NormalizedString getFieldName()
      Returns the column name against which this field is mapped.
      java.lang.Class<?> getFieldParent()
      Returns the parent class that contains the mapped field.
      java.lang.Class<?> getFieldType()
      Returns the type of the mapped field
      int getIndex()
      Returns the column index against which this field is mapped.
      java.lang.reflect.AnnotatedElement getTarget()
      Returns the Field mapped to a column
      int hashCode()  
      boolean isMappedToField()
      Returns true if the field is mapped to a column name, otherwise false
      boolean isMappedToIndex()
      Returns true if the field is mapped to a column index, otherwise false
      java.lang.Object read​(java.lang.Object instance)
      Reads the value accessible by this field mapping from a given object
      private java.lang.Object read​(java.lang.Object instance, boolean ignoreErrors)  
      private void setAccessible()  
      void setFieldName​(NormalizedString fieldName)
      Defines the column name against which this field is mapped, overriding any current name derived from annotations or from the attribute name itself.
      void setFieldName​(java.lang.String fieldName)
      Defines the column name against which this field is mapped, overriding any current name derived from annotations or from the attribute name itself.
      void setIndex​(int index)
      Defines the column index against which this field is mapped, overriding any current position derived from annotations.
      java.lang.String toString()  
      void write​(java.lang.Object instance, java.lang.Object value)
      Writes a value to the field of a given object instance, whose field is accessible through this field mapping.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • parentClass

        private final java.lang.Class parentClass
      • target

        private final java.lang.reflect.AnnotatedElement target
      • index

        private int index
      • beanClass

        private final java.lang.Class<?> beanClass
      • readMethod

        private final java.lang.reflect.Method readMethod
      • writeMethod

        private final java.lang.reflect.Method writeMethod
      • accessible

        private boolean accessible
      • primitive

        private final boolean primitive
      • defaultPrimitiveValue

        private final java.lang.Object defaultPrimitiveValue
      • applyDefault

        private java.lang.Boolean applyDefault
      • fieldType

        private java.lang.Class fieldType
      • primitiveNumber

        private boolean primitiveNumber
    • Constructor Detail

      • FieldMapping

        public FieldMapping​(java.lang.Class<?> beanClass,
                            java.lang.reflect.AnnotatedElement target,
                            PropertyWrapper property,
                            HeaderTransformer transformer,
                            NormalizedString[] headers)
        Creates the mapping and identifies how it is mapped (by name or by index)
        Parameters:
        beanClass - the class that contains a the given field.
        target - a Field or Method annotated with Parsed
        property - the property descriptor of this field, if any. If this bean does not have getters/setters, it will be accessed directly.
        transformer - an optional HeaderTransformer to modify header names/positions in attributes of Nested classes.
        headers - list of headers parsed from the input or manually set with CommonSettings.setHeaders(String...)
    • Method Detail

      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • isMappedToIndex

        public boolean isMappedToIndex()
        Returns true if the field is mapped to a column index, otherwise false
        Returns:
        true if the field is mapped to a column index, otherwise false
      • isMappedToField

        public boolean isMappedToField()
        Returns true if the field is mapped to a column name, otherwise false
        Returns:
        true if the field is mapped to a column name, otherwise false
      • getIndex

        public int getIndex()
        Returns the column index against which this field is mapped.
        Returns:
        the column index associated with this field, or -1 if there's no such association.
      • setIndex

        public void setIndex​(int index)
        Defines the column index against which this field is mapped, overriding any current position derived from annotations.
        Parameters:
        index - the column index associated with this field
      • setFieldName

        public void setFieldName​(java.lang.String fieldName)
        Defines the column name against which this field is mapped, overriding any current name derived from annotations or from the attribute name itself.
        Parameters:
        fieldName - the column name associated with this field
      • setFieldName

        public void setFieldName​(NormalizedString fieldName)
        Defines the column name against which this field is mapped, overriding any current name derived from annotations or from the attribute name itself.
        Parameters:
        fieldName - the column name associated with this field
      • getFieldName

        public NormalizedString getFieldName()
        Returns the column name against which this field is mapped.
        Returns:
        the column name associated with this field, or null if there's no such association.
      • getTarget

        public java.lang.reflect.AnnotatedElement getTarget()
        Returns the Field mapped to a column
        Returns:
        the Field mapped to a column
      • setAccessible

        private void setAccessible()
      • getFieldParent

        public java.lang.Class<?> getFieldParent()
        Returns the parent class that contains the mapped field.
        Returns:
        the field's parent class
      • getFieldType

        public java.lang.Class<?> getFieldType()
        Returns the type of the mapped field
        Returns:
        the field type.
      • canWrite

        public boolean canWrite​(java.lang.Object instance)
        Queries whether this field mapping can be applied over a given object instance.
        Parameters:
        instance - the object whose type will be verified in order to identify if it contains the mapped field
        Returns:
        true if the given instance contains the field/accessor method and can use this field mapping to modify its internal state; otherwise false
      • read

        public java.lang.Object read​(java.lang.Object instance)
        Reads the value accessible by this field mapping from a given object
        Parameters:
        instance - the object whose field, mapped by this field mapping, will be read
        Returns:
        the value contained in the given instance's field
      • read

        private java.lang.Object read​(java.lang.Object instance,
                                      boolean ignoreErrors)
      • write

        public void write​(java.lang.Object instance,
                          java.lang.Object value)
        Writes a value to the field of a given object instance, whose field is accessible through this field mapping.
        Parameters:
        instance - the object whose field will be set
        value - the value to set on the given object's field.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object