Package org.firebirdsql.gds.ng.tz

## Class TimeZoneDatatypeCoder

- java.lang.Object
- - org.firebirdsql.gds.ng.tz.TimeZoneDatatypeCoder

-     public class TimeZoneDatatypeCoder
      extends java.lang.Object

  Datatype coder for `TIME WITH TIME ZONE` and `TIMESTAMP WITH TIME ZONE`.

  As this uses Java 8 and higher types, this is not part of datatype coder itself.

  Since:
    4.0
  Author:
    Mark Rotteveel

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static interface` | `TimeZoneDatatypeCoder.TimeZoneCodec` | Simpler API for encoding or decoding `java.time` types.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `TimeZoneDatatypeCoder​(DatatypeCoder datatypeCoder)` | Initializes a time zone datatype coder.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static TimeZoneDatatypeCoder` | `getInstanceFor​(DatatypeCoder datatypeCoder)` | Gets or creates an instance of time zone datatype coder for a datatype coder.
    `TimeZoneDatatypeCoder.TimeZoneCodec` | `getTimeZoneCodecFor​(int fieldType)` | Obtains the `TimeZoneDatatypeCoder.TimeZoneCodec` implementation for the field with the specified Firebird type.
    `TimeZoneDatatypeCoder.TimeZoneCodec` | `getTimeZoneCodecFor​(FieldDescriptor fieldDescriptor)` | Obtains the `TimeZoneDatatypeCoder.TimeZoneCodec` implementation for the field described by `fieldDescriptor`.

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

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

- - ### Constructor Detail

    - #### TimeZoneDatatypeCoder

          public TimeZoneDatatypeCoder​(DatatypeCoder datatypeCoder)

      Initializes a time zone datatype coder.
      Parameters:
        `datatypeCoder` - datatype coder

  - ### Method Detail

    - #### getTimeZoneCodecFor

          public TimeZoneDatatypeCoder.TimeZoneCodec getTimeZoneCodecFor​(FieldDescriptor fieldDescriptor)
                                                                  throws java.sql.SQLException

      Obtains the `TimeZoneDatatypeCoder.TimeZoneCodec` implementation for the field described by `fieldDescriptor`.
      Parameters:
        `fieldDescriptor` - Field descriptor
      Returns:
        Suitable instance of `TimeZoneCodec`
      Throws:
        `java.sql.SQLException` - When `fieldDescriptor` is not a TIME/TIMESTAMP WITH TIME ZONE type field
      See Also:
        `getTimeZoneCodecFor(int)`

    - #### getTimeZoneCodecFor

          public TimeZoneDatatypeCoder.TimeZoneCodec getTimeZoneCodecFor​(int fieldType)
                                                                  throws java.sql.SQLException

      Obtains the `TimeZoneDatatypeCoder.TimeZoneCodec` implementation for the field with the specified Firebird type.
      Parameters:
        `fieldType` - Firebird type of the field
      Returns:
        Suitable instance of `TimeZoneCodec`
      Throws:
        `java.sql.SQLException` - When `fieldType` is not a TIME/TIMESTAMP WITH TIME ZONE type

    - #### getInstanceFor

          public static TimeZoneDatatypeCoder getInstanceFor​(DatatypeCoder datatypeCoder)

      Gets or creates an instance of time zone datatype coder for a datatype coder.
      Parameters:
        `datatypeCoder` - Datatype coder instance
      Returns:
        Cached or new instance of `TimeZoneDatatypeCoder`