Package org.apache.cayenne.access.types

## Interface ExtendedType<T>

- All Known Implementing Classes:
    `BigDecimalType`, `BooleanType`, `ByteArrayType`, `ByteType`, `CalendarType`, `CharType`, `DateType`, `DoubleType`, `DurationType`, `EnumType`, `ExtendedEnumType`, `FloatType`, `GeoJsonType`, `IngresBooleanType`, `IntegerType`, `JsonType`, `LongType`, `ObjectType`, `OracleByteArrayType`, `OracleCharType`, `OracleUtilDateType`, `ShortType`, `TimestampType`, `TimeType`, `UtilDateType`, `VoidType`, `WktType`

      public interface ExtendedType<T>

  Defines methods to read Java objects from JDBC ResultSets and write as parameters of PreparedStatements.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static int` | `TRIM_VALUES_THRESHOLD` | Defines trimming constant for toString method that helps to limit logging of large values.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Default 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.
    `default ChildProcessor<?>` | `readProcessor()` |
    `void` | `setJdbcObject​(PreparedStatement statement, T value, int pos, int type, int scale)` | 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.
    `default ChildProcessor<?>` | `writeProcessor()` |

- - ### Field Detail

    - #### TRIM_VALUES_THRESHOLD

          static final int TRIM_VALUES_THRESHOLD

      Defines trimming constant for toString method that helps to limit logging of large values.
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getClassName

          String getClassName()

      Returns a full name of Java class that this ExtendedType supports.

    - #### setJdbcObject

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

      Initializes a single parameter of a PreparedStatement with object value.
      Throws:
        `Exception`

    - #### materializeObject

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

      Reads an object from JDBC ResultSet column, converting it to class returned by 'getClassName' method.
      Throws:
        `Exception` - if read error occurred, or an object can't be converted to a target Java class.

    - #### materializeObject

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

      Reads an object from a stored procedure OUT parameter, converting it to class returned by 'getClassName' method.
      Throws:
        `Exception` - if read error occurred, or an object can't be converted to a target Java class.

    - #### toString

          String toString​(T value)

      Converts value of the supported type to a human-readable String representation.
      Parameters:
        `value` - a value to convert to String.
      Since:
        4.0

    - #### readProcessor

          default ChildProcessor<?> readProcessor()

      Returns:
      Since:
        4.2

    - #### writeProcessor

          default ChildProcessor<?> writeProcessor()

      Returns:
      Since:
        4.2