Class MessageImpl<T>

  • All Implemented Interfaces:
    org.apache.pulsar.client.api.Message<T>

    public class MessageImpl<T>
    extends java.lang.Object
    implements org.apache.pulsar.client.api.Message<T>
    • Field Detail

      • messageId

        protected org.apache.pulsar.client.api.MessageId messageId
    • Constructor Detail

      • MessageImpl

        public MessageImpl​(java.lang.String topic,
                           java.lang.String msgId,
                           java.util.Map<java.lang.String,​java.lang.String> properties,
                           byte[] payload,
                           org.apache.pulsar.client.api.Schema<T> schema,
                           org.apache.pulsar.common.api.proto.MessageMetadata msgMetadata)
      • MessageImpl

        public MessageImpl​(java.lang.String topic,
                           java.lang.String msgId,
                           java.util.Map<java.lang.String,​java.lang.String> properties,
                           io.netty.buffer.ByteBuf payload,
                           org.apache.pulsar.client.api.Schema<T> schema,
                           org.apache.pulsar.common.api.proto.MessageMetadata msgMetadata)
    • Method Detail

      • create

        public static <T> MessageImpl<T> create​(org.apache.pulsar.common.api.proto.MessageMetadata msgMetadata,
                                                java.nio.ByteBuffer payload,
                                                org.apache.pulsar.client.api.Schema<T> schema,
                                                java.lang.String topic)
      • create

        public static <T> MessageImpl<T> create​(java.lang.String topic,
                                                MessageIdImpl messageId,
                                                org.apache.pulsar.common.api.proto.MessageMetadata msgMetadata,
                                                io.netty.buffer.ByteBuf payload,
                                                java.util.Optional<org.apache.pulsar.common.api.EncryptionContext> encryptionCtx,
                                                ClientCnx cnx,
                                                org.apache.pulsar.client.api.Schema<T> schema,
                                                int redeliveryCount,
                                                boolean pooledMessage,
                                                long consumerEpoch)
      • create

        public static <T> MessageImpl<T> create​(java.lang.String topic,
                                                BatchMessageIdImpl batchMessageIdImpl,
                                                org.apache.pulsar.common.api.proto.MessageMetadata batchMetadata,
                                                org.apache.pulsar.common.api.proto.SingleMessageMetadata singleMessageMetadata,
                                                io.netty.buffer.ByteBuf payload,
                                                java.util.Optional<org.apache.pulsar.common.api.EncryptionContext> encryptionCtx,
                                                ClientCnx cnx,
                                                org.apache.pulsar.client.api.Schema<T> schema,
                                                int redeliveryCount,
                                                boolean pooledMessage,
                                                long consumerEpoch)
      • deserialize

        public static MessageImpl<byte[]> deserialize​(io.netty.buffer.ByteBuf headersAndPayload)
                                               throws java.io.IOException
        Throws:
        java.io.IOException
      • isEntryExpired

        public static boolean isEntryExpired​(int messageTTLInSeconds,
                                             long entryTimestamp)
      • isEntryPublishedEarlierThan

        public static boolean isEntryPublishedEarlierThan​(long entryTimestamp,
                                                          long timestamp)
      • deserializeSkipBrokerEntryMetaData

        public static MessageImpl<byte[]> deserializeSkipBrokerEntryMetaData​(io.netty.buffer.ByteBuf headersAndPayloadWithBrokerEntryMetadata)
                                                                      throws java.io.IOException
        Throws:
        java.io.IOException
      • setReplicatedFrom

        public void setReplicatedFrom​(java.lang.String cluster)
      • isReplicated

        public boolean isReplicated()
        Specified by:
        isReplicated in interface org.apache.pulsar.client.api.Message<T>
      • getReplicatedFrom

        public java.lang.String getReplicatedFrom()
        Specified by:
        getReplicatedFrom in interface org.apache.pulsar.client.api.Message<T>
      • getPublishTime

        public long getPublishTime()
        Specified by:
        getPublishTime in interface org.apache.pulsar.client.api.Message<T>
      • getEventTime

        public long getEventTime()
        Specified by:
        getEventTime in interface org.apache.pulsar.client.api.Message<T>
      • getDeliverAtTime

        public long getDeliverAtTime()
      • isExpired

        public boolean isExpired​(int messageTTLInSeconds)
      • getData

        public byte[] getData()
        Specified by:
        getData in interface org.apache.pulsar.client.api.Message<T>
      • size

        public int size()
        Specified by:
        size in interface org.apache.pulsar.client.api.Message<T>
      • getSchemaInternal

        public org.apache.pulsar.client.api.Schema<T> getSchemaInternal()
      • getReaderSchema

        public java.util.Optional<org.apache.pulsar.client.api.Schema<?>> getReaderSchema()
        Specified by:
        getReaderSchema in interface org.apache.pulsar.client.api.Message<T>
      • getSchemaVersion

        public byte[] getSchemaVersion()
        Specified by:
        getSchemaVersion in interface org.apache.pulsar.client.api.Message<T>
      • getSchemaInfo

        public org.apache.pulsar.common.schema.SchemaInfo getSchemaInfo()
      • getSchemaHash

        public org.apache.pulsar.common.protocol.schema.SchemaHash getSchemaHash()
      • setSchemaInfoForReplicator

        public void setSchemaInfoForReplicator​(org.apache.pulsar.common.schema.SchemaInfo schemaInfo)
      • getSchemaInfoForReplicator

        public org.apache.pulsar.common.schema.SchemaInfo getSchemaInfoForReplicator()
      • getValue

        public T getValue()
        Specified by:
        getValue in interface org.apache.pulsar.client.api.Message<T>
      • getSequenceId

        public long getSequenceId()
        Specified by:
        getSequenceId in interface org.apache.pulsar.client.api.Message<T>
      • getProducerName

        public java.lang.String getProducerName()
        Specified by:
        getProducerName in interface org.apache.pulsar.client.api.Message<T>
      • getDataBuffer

        public io.netty.buffer.ByteBuf getDataBuffer()
      • getMessageId

        public org.apache.pulsar.client.api.MessageId getMessageId()
        Specified by:
        getMessageId in interface org.apache.pulsar.client.api.Message<T>
      • getProperties

        public java.util.Map<java.lang.String,​java.lang.String> getProperties()
        Specified by:
        getProperties in interface org.apache.pulsar.client.api.Message<T>
      • hasProperty

        public boolean hasProperty​(java.lang.String name)
        Specified by:
        hasProperty in interface org.apache.pulsar.client.api.Message<T>
      • getProperty

        public java.lang.String getProperty​(java.lang.String name)
        Specified by:
        getProperty in interface org.apache.pulsar.client.api.Message<T>
      • getMessageBuilder

        public org.apache.pulsar.common.api.proto.MessageMetadata getMessageBuilder()
      • hasKey

        public boolean hasKey()
        Specified by:
        hasKey in interface org.apache.pulsar.client.api.Message<T>
      • getTopicName

        public java.lang.String getTopicName()
        Specified by:
        getTopicName in interface org.apache.pulsar.client.api.Message<T>
      • getKey

        public java.lang.String getKey()
        Specified by:
        getKey in interface org.apache.pulsar.client.api.Message<T>
      • hasBase64EncodedKey

        public boolean hasBase64EncodedKey()
        Specified by:
        hasBase64EncodedKey in interface org.apache.pulsar.client.api.Message<T>
      • getKeyBytes

        public byte[] getKeyBytes()
        Specified by:
        getKeyBytes in interface org.apache.pulsar.client.api.Message<T>
      • hasOrderingKey

        public boolean hasOrderingKey()
        Specified by:
        hasOrderingKey in interface org.apache.pulsar.client.api.Message<T>
      • getOrderingKey

        public byte[] getOrderingKey()
        Specified by:
        getOrderingKey in interface org.apache.pulsar.client.api.Message<T>
      • getBrokerEntryMetadata

        public org.apache.pulsar.common.api.proto.BrokerEntryMetadata getBrokerEntryMetadata()
      • setBrokerEntryMetadata

        public void setBrokerEntryMetadata​(org.apache.pulsar.common.api.proto.BrokerEntryMetadata brokerEntryMetadata)
      • recycle

        public void recycle()
      • release

        public void release()
        Specified by:
        release in interface org.apache.pulsar.client.api.Message<T>
      • hasBrokerPublishTime

        public boolean hasBrokerPublishTime()
        Specified by:
        hasBrokerPublishTime in interface org.apache.pulsar.client.api.Message<T>
      • getBrokerPublishTime

        public java.util.Optional<java.lang.Long> getBrokerPublishTime()
        Specified by:
        getBrokerPublishTime in interface org.apache.pulsar.client.api.Message<T>
      • hasIndex

        public boolean hasIndex()
        Specified by:
        hasIndex in interface org.apache.pulsar.client.api.Message<T>
      • getIndex

        public java.util.Optional<java.lang.Long> getIndex()
        Specified by:
        getIndex in interface org.apache.pulsar.client.api.Message<T>
      • hasReplicateTo

        public boolean hasReplicateTo()
      • getReplicateTo

        public java.util.List<java.lang.String> getReplicateTo()
      • hasReplicateFrom

        public boolean hasReplicateFrom()
      • getEncryptionCtx

        public java.util.Optional<org.apache.pulsar.common.api.EncryptionContext> getEncryptionCtx()
        Specified by:
        getEncryptionCtx in interface org.apache.pulsar.client.api.Message<T>
      • getRedeliveryCount

        public int getRedeliveryCount()
        Specified by:
        getRedeliveryCount in interface org.apache.pulsar.client.api.Message<T>