# 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 ExtendedType

  `TRIM_VALUES_THRESHOLD`

- ## Constructor Summary

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

- ## Method Summary

  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 Object

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

- ## Field Details

  - ### enumClass

    protected Class<T extends Enum<T>> enumClass

  - ### values

    protected T extends Enum<T>[] values

  - ### canonicalName

    protected String canonicalName

- ## Constructor Details

  - ### EnumType

    public EnumType(Class<T> enumClass)

- ## Method Details

  - ### 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.