Class InformixChangeRecordEmitter

java.lang.Object
io.debezium.pipeline.AbstractChangeRecordEmitter<P,io.debezium.relational.TableSchema>
io.debezium.relational.RelationalChangeRecordEmitter<InformixPartition>
io.debezium.connector.informix.InformixChangeRecordEmitter
All Implemented Interfaces:
io.debezium.pipeline.spi.ChangeRecordEmitter<InformixPartition>

public class InformixChangeRecordEmitter extends io.debezium.relational.RelationalChangeRecordEmitter<InformixPartition>
Emits change data based on a single (or two in case of updates) CDC data row(s).
Author:
Laoflch Luo, Xiaolin Zhang, Lars M Johansson
  • Nested Class Summary

    Nested classes/interfaces inherited from interface io.debezium.pipeline.spi.ChangeRecordEmitter

    io.debezium.pipeline.spi.ChangeRecordEmitter.Receiver<P extends io.debezium.pipeline.spi.Partition>
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final Object[]
     
    private final Object[]
     
    private final io.debezium.data.Envelope.Operation
     

    Fields inherited from class io.debezium.relational.RelationalChangeRecordEmitter

    PK_UPDATE_NEWKEY_FIELD, PK_UPDATE_OLDKEY_FIELD
  • Constructor Summary

    Constructors
    Constructor
    Description
    InformixChangeRecordEmitter(InformixPartition partition, InformixOffsetContext offsetContext, io.debezium.data.Envelope.Operation operation, Object[] before, Object[] after, io.debezium.util.Clock clock, InformixConnectorConfig connectorConfig)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static Object[]
    convertIfxData2Array(Map<String,com.informix.jdbc.IfmxReadableType> data, io.debezium.relational.TableSchema tableSchema)
    Convert columns data from Map[String,IfmxReadableType] to Object[].
    protected void
    emitTruncateRecord(io.debezium.pipeline.spi.ChangeRecordEmitter.Receiver<InformixPartition> receiver, io.debezium.relational.TableSchema tableSchema)
     
    protected Object[]
     
    protected Object[]
     
    io.debezium.data.Envelope.Operation
     
    private static <X> X
    propagate(Callable<X> callable)
     

    Methods inherited from class io.debezium.relational.RelationalChangeRecordEmitter

    emitChangeRecords, emitCreateRecord, emitDeleteRecord, emitReadRecord, emitUpdateAsPrimaryKeyChangeRecord, emitUpdateRecord, skipEmptyMessages

    Methods inherited from class io.debezium.pipeline.AbstractChangeRecordEmitter

    getClock, getOffset, getPartition, skipMessagesWithoutChange

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • operation

      private final io.debezium.data.Envelope.Operation operation
    • before

      private final Object[] before
    • after

      private final Object[] after
  • Constructor Details

  • Method Details

    • getOperation

      public io.debezium.data.Envelope.Operation getOperation()
    • getOldColumnValues

      protected Object[] getOldColumnValues()
      Specified by:
      getOldColumnValues in class io.debezium.relational.RelationalChangeRecordEmitter<InformixPartition>
    • getNewColumnValues

      protected Object[] getNewColumnValues()
      Specified by:
      getNewColumnValues in class io.debezium.relational.RelationalChangeRecordEmitter<InformixPartition>
    • emitTruncateRecord

      protected void emitTruncateRecord(io.debezium.pipeline.spi.ChangeRecordEmitter.Receiver<InformixPartition> receiver, io.debezium.relational.TableSchema tableSchema) throws InterruptedException
      Overrides:
      emitTruncateRecord in class io.debezium.relational.RelationalChangeRecordEmitter<InformixPartition>
      Throws:
      InterruptedException
    • convertIfxData2Array

      public static Object[] convertIfxData2Array(Map<String,com.informix.jdbc.IfmxReadableType> data, io.debezium.relational.TableSchema tableSchema)
      Convert columns data from Map[String,IfmxReadableType] to Object[]. Debezium can't convert the IfmxReadableType object to kafka direct,so use map[AnyRef](x=>x.toObject) to extract the java type value from IfmxReadableType and pass to debezium for kafka
      Parameters:
      data - the data from informix cdc map[String,IfmxReadableType].
    • propagate

      private static <X> X propagate(Callable<X> callable)