Package org.apache.cayenne.access.types

## Class EnumType<T extends Enum<T>>

- java.lang.Object
- - org.apache.cayenne.access.types.EnumType<T>

- All Implemented Interfaces:
    `ExtendedType<T>`

      public class EnumType<T extends Enum<T>>
      extends Object
      implements ExtendedType<T>

  An ExtendedType that handles an enum class. If Enum is mapped to a character column, its name is used as persistent value; if it is mapped to a numeric column, its ordinal (i.e. a position in enum class) is used.
  Since:
    1.2

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected String` | `canonicalName` |
    `protected Class<T>` | `enumClass` |
    `protected T[]` | `values` |

    - ### Fields inherited from interface org.apache.cayenne.access.types.ExtendedType

      `TRIM_VALUES_THRESHOLD`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `EnumType​(Class<T> enumClass)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `String` | `getClassName()` | Returns a full name of Java class that this ExtendedType supports.
    `T` | `materializeObject​(CallableStatement rs, int index, int type)` | Reads an object from a stored procedure OUT parameter, converting it to class returned by 'getClassName' method.
    `T` | `materializeObject​(ResultSet rs, int index, int type)` | Reads an object from JDBC ResultSet column, converting it to class returned by 'getClassName' method.
    `void` | `setJdbcObject​(PreparedStatement statement, T value, int pos, int type, int precision)` | Initializes a single parameter of a PreparedStatement with object value.
    `String` | `toString​(T value)` | Converts value of the supported type to a human-readable String representation.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### enumClass

          protected Class<T extends Enum<T>> enumClass

    - #### values

          protected T extends Enum<T>[] values

    - #### canonicalName

          protected String canonicalName

  - ### Constructor Detail

    - #### EnumType

          public EnumType​(Class<T> enumClass)

  - ### Method Detail

    - #### getClassName

          public String getClassName()

      Description copied from interface: `ExtendedType`
      Returns a full name of Java class that this ExtendedType supports.
      Specified by:
        `getClassName` in interface `ExtendedType<T extends Enum<T>>`

    - #### setJdbcObject

          public void setJdbcObject​(PreparedStatement statement,
                                    T value,
                                    int pos,
                                    int type,
                                    int precision)
                             throws Exception

      Description copied from interface: `ExtendedType`
      Initializes a single parameter of a PreparedStatement with object value.
      Specified by:
        `setJdbcObject` in interface `ExtendedType<T extends Enum<T>>`
      Throws:
        `Exception`

    - #### materializeObject

          public T materializeObject​(ResultSet rs,
                                     int index,
                                     int type)
                              throws Exception

      Description copied from interface: `ExtendedType`
      Reads an object from JDBC ResultSet column, converting it to class returned by 'getClassName' method.
      Specified by:
        `materializeObject` in interface `ExtendedType<T extends Enum<T>>`
      Throws:
        `Exception` - if read error occurred, or an object can't be converted to a target Java class.

    - #### materializeObject

          public T materializeObject​(CallableStatement rs,
                                     int index,
                                     int type)
                              throws Exception

      Description copied from interface: `ExtendedType`
      Reads an object from a stored procedure OUT parameter, converting it to class returned by 'getClassName' method.
      Specified by:
        `materializeObject` in interface `ExtendedType<T extends Enum<T>>`
      Throws:
        `Exception` - if read error occurred, or an object can't be converted to a target Java class.

    - #### toString

          public String toString​(T value)

      Description copied from interface: `ExtendedType`
      Converts value of the supported type to a human-readable String representation.
      Specified by:
        `toString` in interface `ExtendedType<T extends Enum<T>>`
      Parameters:
        `value` - a value to convert to String.