Class TimezoneConverter<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>

java.lang.Object
io.debezium.transforms.TimezoneConverter<R>
All Implemented Interfaces:
Closeable, AutoCloseable, org.apache.kafka.common.Configurable, org.apache.kafka.connect.transforms.Transformation<R>

public class TimezoneConverter<R extends org.apache.kafka.connect.connector.ConnectRecord<R>> extends Object implements org.apache.kafka.connect.transforms.Transformation<R>
Author:
Anisha Mohanty
  • Field Details

    • LOGGER

      private static final org.slf4j.Logger LOGGER
    • CONVERTED_TIMEZONE

      private static final Field CONVERTED_TIMEZONE
    • INCLUDE_LIST

      private static final Field INCLUDE_LIST
    • EXCLUDE_LIST

      private static final Field EXCLUDE_LIST
    • smtManager

      private SmtManager<R extends org.apache.kafka.connect.connector.ConnectRecord<R>> smtManager
    • convertedTimezone

      private String convertedTimezone
    • includeList

      private List<String> includeList
    • excludeList

      private List<String> excludeList
    • SOURCE

      private static final String SOURCE
      See Also:
    • TOPIC

      private static final String TOPIC
      See Also:
    • TIMEZONE_OFFSET_PATTERN

      private static final Pattern TIMEZONE_OFFSET_PATTERN
    • LIST_PATTERN

      private static final Pattern LIST_PATTERN
    • topicFieldsMap

      private final Map<String,Set<String>> topicFieldsMap
    • tableFieldsMap

      private final Map<String,Set<String>> tableFieldsMap
    • noPrefixFieldsMap

      private final Map<String,Set<String>> noPrefixFieldsMap
    • SUPPORTED_TIMESTAMP_LOGICAL_NAMES

      private static final List<String> SUPPORTED_TIMESTAMP_LOGICAL_NAMES
    • UNSUPPORTED_LOGICAL_NAMES

      private static final List<String> UNSUPPORTED_LOGICAL_NAMES
  • Constructor Details

    • TimezoneConverter

      public TimezoneConverter()
  • Method Details

    • config

      public org.apache.kafka.common.config.ConfigDef config()
      Specified by:
      config in interface org.apache.kafka.connect.transforms.Transformation<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>
    • apply

      public R apply(R record)
      Specified by:
      apply in interface org.apache.kafka.connect.transforms.Transformation<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>
    • configure

      public void configure(Map<String,?> configs)
      Specified by:
      configure in interface org.apache.kafka.common.Configurable
    • collectTablesAndTopics

      private void collectTablesAndTopics(List<String> list)
    • validateConfiguration

      private void validateConfiguration()
    • validateTimezoneString

      private boolean validateTimezoneString()
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface org.apache.kafka.connect.transforms.Transformation<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>
    • getTimestampWithTimezone

      private Object getTimestampWithTimezone(String schemaName, Object fieldValue)
    • handleStructs

      private void handleStructs(org.apache.kafka.connect.data.Struct value, TimezoneConverter.Type type, String matchName, Set<String> fields)
    • handleValueForFields

      private void handleValueForFields(org.apache.kafka.connect.data.Struct value, TimezoneConverter.Type type, Set<String> fields)
    • handleValueForField

      private void handleValueForField(org.apache.kafka.connect.data.Struct struct, org.apache.kafka.connect.data.Field field)
    • getStruct

      private org.apache.kafka.connect.data.Struct getStruct(org.apache.kafka.connect.data.Struct struct, String structName)
    • getTableFromSource

      private String getTableFromSource(org.apache.kafka.connect.data.Struct value)
    • parseItem

      private TimezoneConverter.FieldItem parseItem(String item)
    • handleMatchNameAndFields

      private TimezoneConverter.MatchFieldsResult handleMatchNameAndFields(String table, String topic)
    • handleInclude

      private void handleInclude(org.apache.kafka.connect.data.Struct value, String table, String topic)
    • handleExclude

      private void handleExclude(org.apache.kafka.connect.data.Struct value, String table, String topic)
    • handleAllRecords

      private void handleAllRecords(org.apache.kafka.connect.data.Struct value, String table, String topic)