Class CdcEventAvroEncoder

    • Field Summary

      Fields 
      Modifier and Type Field Description
      org.apache.avro.Schema cdcSchema  
      protected org.apache.avro.io.BinaryEncoder encoder  
      org.apache.avro.Schema rangeSchema  
      protected SchemaStore store  
      org.apache.avro.Schema ttlSchema  
      protected java.util.function.Function<org.apache.cassandra.cdc.api.KeyspaceTypeKey,​org.apache.cassandra.spark.data.CqlField.CqlType> typeLookup  
    • Constructor Summary

      Constructors 
      Constructor Description
      CdcEventAvroEncoder​(SchemaStore store, java.util.function.Function<org.apache.cassandra.cdc.api.KeyspaceTypeKey,​org.apache.cassandra.spark.data.CqlField.CqlType> typeLookup, java.lang.String templatePath)  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected void applyCommonFields​(org.apache.cassandra.cdc.msg.CdcEvent event, org.apache.avro.generic.GenericData.Record record, java.util.function.Function<org.apache.cassandra.cdc.msg.Value,​java.lang.Object> avroFieldEncoder)  
      byte[] encode​(org.apache.avro.generic.GenericDatumWriter<org.apache.avro.generic.GenericRecord> writer, org.apache.avro.generic.GenericData.Record record)
      Encode the transformed CdcEvent to a byte array.
      abstract org.apache.avro.generic.GenericData.Record transform​(org.apache.cassandra.cdc.msg.CdcEvent event)
      Transform CdcEvent into Avro record.
      • Methods inherited from class java.lang.Object

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

      • cdcSchema

        public final org.apache.avro.Schema cdcSchema
      • ttlSchema

        public final org.apache.avro.Schema ttlSchema
      • rangeSchema

        public final org.apache.avro.Schema rangeSchema
      • encoder

        protected final org.apache.avro.io.BinaryEncoder encoder
      • typeLookup

        protected final java.util.function.Function<org.apache.cassandra.cdc.api.KeyspaceTypeKey,​org.apache.cassandra.spark.data.CqlField.CqlType> typeLookup
    • Constructor Detail

      • CdcEventAvroEncoder

        public CdcEventAvroEncoder​(SchemaStore store,
                                   java.util.function.Function<org.apache.cassandra.cdc.api.KeyspaceTypeKey,​org.apache.cassandra.spark.data.CqlField.CqlType> typeLookup,
                                   java.lang.String templatePath)
    • Method Detail

      • transform

        public abstract org.apache.avro.generic.GenericData.Record transform​(org.apache.cassandra.cdc.msg.CdcEvent event)
        Transform CdcEvent into Avro record.
        Specified by:
        transform in interface CdcEventTransformer<org.apache.avro.generic.GenericData.Record>
        Parameters:
        event - the CdcEvent
        Returns:
        transformed cdc event as an Avro GenericData.Record
      • applyCommonFields

        protected void applyCommonFields​(org.apache.cassandra.cdc.msg.CdcEvent event,
                                         org.apache.avro.generic.GenericData.Record record,
                                         java.util.function.Function<org.apache.cassandra.cdc.msg.Value,​java.lang.Object> avroFieldEncoder)
      • encode

        public byte[] encode​(org.apache.avro.generic.GenericDatumWriter<org.apache.avro.generic.GenericRecord> writer,
                             org.apache.avro.generic.GenericData.Record record)
        Encode the transformed CdcEvent to a byte array.
        Parameters:
        writer - the Avro record writer
        record - the CdcEvent transformed as a GenericData.Record
        Returns:
        Avro message serialized to bytes