com.univocity.parsers.conversions
Class EnumConversion<T extends Enum<T>>

java.lang.Object
  extended by com.univocity.parsers.conversions.NullConversion<String,T>
      extended by com.univocity.parsers.conversions.ObjectConversion<T>
          extended by com.univocity.parsers.conversions.EnumConversion<T>
Type Parameters:
T - the enumeration type whose constants will be converted from/to String
All Implemented Interfaces:
Conversion<String,T>

public class EnumConversion<T extends Enum<T>>
extends ObjectConversion<T>

Converts Strings to enumeration constants and vice versa.

This class supports multiple types of identification of enumeration constants. For example, you can match the literal (Enum.name() the ordinal (Enum.ordinal() or the result of a method defined in your enumeration.

The reverse conversion from an enumeration to String (in revert(Enum) will return a String using the first EnumSelector provided in the constructor of this class.

Author:
uniVocity Software Pty Ltd - [email protected]
See Also:
ObjectConversion, EnumSelector

Constructor Summary
EnumConversion(Class<T> enumType)
          Defines a conversion for an enumeration type that will attempt to match Strings against the results of the output produced by (Enum.name(), (Enum.ordinal() and (Enum.toString() of each constant of the given enumeration (@link Class.getEnumConstants()).
EnumConversion(Class<T> enumType, EnumSelector... selectors)
          Defines a conversion for an enumeration type that will attempt to match Strings the list of EnumSelectors, in the specified order.
EnumConversion(Class<T> enumType, String customEnumElement, EnumSelector... selectors)
          Defines a conversion for an enumeration type that will attempt to match Strings the list of EnumSelectors, in the specified order.
EnumConversion(Class<T> enumType, T valueIfStringIsNull, String valueIfEnumIsNull, String customEnumElement, EnumSelector... selectors)
          Defines a conversion for an enumeration type that will attempt to match Strings the list of EnumSelectors, in the specified order.
 
Method Summary
protected  T fromString(String input)
          Creates an instance of T from a String representation.
 String revert(T input)
          Converts a value of type T back to a String
 
Methods inherited from class com.univocity.parsers.conversions.ObjectConversion
execute, fromInput, getValueIfObjectIsNull, getValueIfStringIsNull, setValueIfObjectIsNull, setValueIfStringIsNull, undo
 
Methods inherited from class com.univocity.parsers.conversions.NullConversion
getValueOnNullInput, getValueOnNullOutput, setValueOnNullInput, setValueOnNullOutput
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EnumConversion

public EnumConversion(Class<T> enumType)
Defines a conversion for an enumeration type that will attempt to match Strings against the results of the output produced by (Enum.name(), (Enum.ordinal() and (Enum.toString() of each constant of the given enumeration (@link Class.getEnumConstants()).

Parameters:
enumType - the enumeration type to be converted from/to String

EnumConversion

public EnumConversion(Class<T> enumType,
                      EnumSelector... selectors)
Defines a conversion for an enumeration type that will attempt to match Strings the list of EnumSelectors, in the specified order. Each EnumSelector identifies which element of each constant of the enumeration class (@link Class.getEnumConstants() should be used to match equivalent Strings.

Parameters:
enumType - the enumeration type to be converted from/to String
selectors - the selection elements of the enumeration to use for matching Strings.

EnumConversion

public EnumConversion(Class<T> enumType,
                      String customEnumElement,
                      EnumSelector... selectors)
Defines a conversion for an enumeration type that will attempt to match Strings the list of EnumSelectors, in the specified order. Each EnumSelector identifies which element of each constant of the enumeration class (@link Class.getEnumConstants() should be used to match equivalent Strings.

Parameters:
enumType - the enumeration type to be converted from/to String
customEnumElement - name of custom element of the enumeration (attribute or method) whose values should be used to match equivalent Strings.
selectors - the selection elements of the enumeration to use for matching Strings.

EnumConversion

public EnumConversion(Class<T> enumType,
                      T valueIfStringIsNull,
                      String valueIfEnumIsNull,
                      String customEnumElement,
                      EnumSelector... selectors)
Defines a conversion for an enumeration type that will attempt to match Strings the list of EnumSelectors, in the specified order. Each EnumSelector identifies which element of each constant of the enumeration class (@link Class.getEnumConstants() should be used to match equivalent Strings.

Parameters:
enumType - the enumeration type to be converted from/to String
valueIfStringIsNull - the default enumeration constant to use if the input String is null
valueIfEnumIsNull - the default String value to use if the input enum constant is null
customEnumElement - name of custom element of the enumeration (attribute or method) whose values should be used to match equivalent Strings.
selectors - the selection elements of the enumeration to use for matching Strings.
Method Detail

revert

public String revert(T input)
Description copied from class: ObjectConversion
Converts a value of type T back to a String

This is a general implementation that simply returns the result of input.toString()

Specified by:
revert in interface Conversion<String,T extends Enum<T>>
Overrides:
revert in class ObjectConversion<T extends Enum<T>>
Parameters:
input - the input of type T to be converted to a String
Returns:
the conversion result, or the value of ObjectConversion.getValueIfObjectIsNull() if the input object is null.

fromString

protected T fromString(String input)
Description copied from class: ObjectConversion
Creates an instance of T from a String representation.

Specified by:
fromString in class ObjectConversion<T extends Enum<T>>
Parameters:
input - The String to be converted to T
Returns:
an instance of T, converted from the String input.


Copyright © 2017 uniVocity Software Pty Ltd. All rights reserved.