Class KafkaMessageEnvelope

  • All Implemented Interfaces:
    java.io.Externalizable, java.io.Serializable, java.lang.Comparable<org.apache.avro.specific.SpecificRecord>, org.apache.avro.generic.GenericContainer, org.apache.avro.generic.GenericRecord, org.apache.avro.generic.IndexedRecord, org.apache.avro.specific.SpecificRecord

    public class KafkaMessageEnvelope
    extends org.apache.avro.specific.SpecificRecordBase
    implements org.apache.avro.specific.SpecificRecord
    See Also:
    Serialized Form
    • Field Detail

      • SCHEMA$

        public static final org.apache.avro.Schema SCHEMA$
      • messageType

        public int messageType
        Using int because Avro Enums are not evolvable. Readers should always handle the 'unknown' value edge case, to account for future evolutions of this protocol. The mapping is the following: 0 => Put, 1 => Delete, 2 => ControlMessage, 3 => Update.
      • producerMetadata

        public ProducerMetadata producerMetadata
        ProducerMetadata contains information that the consumer can use to identify an upstream producer. This is common for all MessageType.
      • payloadUnion

        public java.lang.Object payloadUnion
        This contains the main payload of the message. Which branch of the union is present is based on the previously-defined MessageType field.
      • leaderMetadataFooter

        public LeaderMetadata leaderMetadataFooter
        A optional footer that leader SN can use to give extra L/F related mete data
    • Constructor Detail

      • KafkaMessageEnvelope

        public KafkaMessageEnvelope()
        Default constructor. Note that this does not initialize fields to their default values from the schema. If that is desired then one should use newBuilder().
      • KafkaMessageEnvelope

        public KafkaMessageEnvelope​(java.lang.Integer messageType,
                                    ProducerMetadata producerMetadata,
                                    java.lang.Object payloadUnion,
                                    LeaderMetadata leaderMetadataFooter)
        All-args constructor.
        Parameters:
        messageType - Using int because Avro Enums are not evolvable. Readers should always handle the 'unknown' value edge case, to account for future evolutions of this protocol. The mapping is the following: 0 => Put, 1 => Delete, 2 => ControlMessage, 3 => Update.
        producerMetadata - ProducerMetadata contains information that the consumer can use to identify an upstream producer. This is common for all MessageType.
        payloadUnion - This contains the main payload of the message. Which branch of the union is present is based on the previously-defined MessageType field.
        leaderMetadataFooter - A optional footer that leader SN can use to give extra L/F related mete data
    • Method Detail

      • getClassSchema

        public static org.apache.avro.Schema getClassSchema()
      • getSpecificData

        public org.apache.avro.specific.SpecificData getSpecificData()
        Overrides:
        getSpecificData in class org.apache.avro.specific.SpecificRecordBase
      • getSchema

        public org.apache.avro.Schema getSchema()
        Specified by:
        getSchema in interface org.apache.avro.generic.GenericContainer
        Specified by:
        getSchema in class org.apache.avro.specific.SpecificRecordBase
      • get

        public java.lang.Object get​(int field$)
        Specified by:
        get in interface org.apache.avro.generic.IndexedRecord
        Specified by:
        get in class org.apache.avro.specific.SpecificRecordBase
      • put

        public void put​(int field$,
                        java.lang.Object value$)
        Specified by:
        put in interface org.apache.avro.generic.IndexedRecord
        Specified by:
        put in class org.apache.avro.specific.SpecificRecordBase
      • getMessageType

        public int getMessageType()
        Gets the value of the 'messageType' field.
        Returns:
        Using int because Avro Enums are not evolvable. Readers should always handle the 'unknown' value edge case, to account for future evolutions of this protocol. The mapping is the following: 0 => Put, 1 => Delete, 2 => ControlMessage, 3 => Update.
      • setMessageType

        public void setMessageType​(int value)
        Sets the value of the 'messageType' field. Using int because Avro Enums are not evolvable. Readers should always handle the 'unknown' value edge case, to account for future evolutions of this protocol. The mapping is the following: 0 => Put, 1 => Delete, 2 => ControlMessage, 3 => Update.
        Parameters:
        value - the value to set.
      • getProducerMetadata

        public ProducerMetadata getProducerMetadata()
        Gets the value of the 'producerMetadata' field.
        Returns:
        ProducerMetadata contains information that the consumer can use to identify an upstream producer. This is common for all MessageType.
      • setProducerMetadata

        public void setProducerMetadata​(ProducerMetadata value)
        Sets the value of the 'producerMetadata' field. ProducerMetadata contains information that the consumer can use to identify an upstream producer. This is common for all MessageType.
        Parameters:
        value - the value to set.
      • getPayloadUnion

        public java.lang.Object getPayloadUnion()
        Gets the value of the 'payloadUnion' field.
        Returns:
        This contains the main payload of the message. Which branch of the union is present is based on the previously-defined MessageType field.
      • setPayloadUnion

        public void setPayloadUnion​(java.lang.Object value)
        Sets the value of the 'payloadUnion' field. This contains the main payload of the message. Which branch of the union is present is based on the previously-defined MessageType field.
        Parameters:
        value - the value to set.
      • getLeaderMetadataFooter

        public LeaderMetadata getLeaderMetadataFooter()
        Gets the value of the 'leaderMetadataFooter' field.
        Returns:
        A optional footer that leader SN can use to give extra L/F related mete data
      • setLeaderMetadataFooter

        public void setLeaderMetadataFooter​(LeaderMetadata value)
        Sets the value of the 'leaderMetadataFooter' field. A optional footer that leader SN can use to give extra L/F related mete data
        Parameters:
        value - the value to set.
      • writeExternal

        public void writeExternal​(java.io.ObjectOutput out)
                           throws java.io.IOException
        Specified by:
        writeExternal in interface java.io.Externalizable
        Overrides:
        writeExternal in class org.apache.avro.specific.SpecificRecordBase
        Throws:
        java.io.IOException
      • readExternal

        public void readExternal​(java.io.ObjectInput in)
                          throws java.io.IOException
        Specified by:
        readExternal in interface java.io.Externalizable
        Overrides:
        readExternal in class org.apache.avro.specific.SpecificRecordBase
        Throws:
        java.io.IOException