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

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

public class HeaderToValue<R extends org.apache.kafka.connect.connector.ConnectRecord<R>> extends Object implements org.apache.kafka.connect.transforms.Transformation<R>
  • Field Details

  • Constructor Details

    • HeaderToValue

      public HeaderToValue()
  • 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>>
    • configure

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

      private void validateConfiguration()
    • 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>>
    • removeHeaders

      private org.apache.kafka.connect.header.Headers removeHeaders(org.apache.kafka.connect.header.Headers originalHeaders)
    • makeUpdatedValue

      private org.apache.kafka.connect.data.Struct makeUpdatedValue(org.apache.kafka.connect.data.Struct originalValue, Map<String,org.apache.kafka.connect.header.Header> headerToProcess, org.apache.kafka.connect.data.Schema updatedSchema)
    • buildUpdatedValue

      private org.apache.kafka.connect.data.Struct buildUpdatedValue(String fieldName, org.apache.kafka.connect.data.Struct originalValue, Map<String,org.apache.kafka.connect.header.Header> headerToProcess, org.apache.kafka.connect.data.Schema updatedSchema, List<String> nestedFields, int level)
    • isContainedIn

      private boolean isContainedIn(String fieldName, List<String> nestedFields)
    • makeNewSchema

      private org.apache.kafka.connect.data.Schema makeNewSchema(org.apache.kafka.connect.data.Schema oldSchema, Map<String,org.apache.kafka.connect.header.Header> headerToProcess)
    • buildNewSchema

      private org.apache.kafka.connect.data.Schema buildNewSchema(String fieldName, org.apache.kafka.connect.data.Schema oldSchema, Map<String,org.apache.kafka.connect.header.Header> headerToProcess, List<String> nestedFields, int level)
    • getFieldName

      private Optional<String> getFieldName(String destinationFieldName, String fieldName, int level)
    • isChildrenOf

      private static boolean isChildrenOf(String fieldName, int level, String[] nestedNames)
    • isRootField

      private static boolean isRootField(String fieldName, String[] nestedNames)
    • headersToString

      private String headersToString(Map<?,?> map)
    • 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>>