Class ByteArrayTranscoder

java.lang.Object
com.couchbase.client.java.transcoder.AbstractTranscoder<ByteArrayDocument,​byte[]>
com.couchbase.client.java.transcoder.ByteArrayTranscoder
All Implemented Interfaces:
Transcoder<ByteArrayDocument,​byte[]>

@Uncommitted
@Public
public class ByteArrayTranscoder
extends AbstractTranscoder<ByteArrayDocument,​byte[]>
A transcoder to encode and decode ByteArrayDocuments. This transcoder makes it much easier to work with raw binary data than BinaryTranscoder since on retry and unsubscribe, buffers don't need to be freed and managed seperately. As a result, for all but special purpose cases it should be preferred over BinaryTranscoder.
Since:
2.5.2
Author:
Michael Nitschinger
  • Constructor Details

    • ByteArrayTranscoder

      public ByteArrayTranscoder()
  • Method Details

    • doDecode

      protected ByteArrayDocument doDecode​(String id, com.couchbase.client.deps.io.netty.buffer.ByteBuf content, long cas, int expiry, int flags, ResponseStatus status) throws Exception
      Description copied from class: AbstractTranscoder
      Perform the decoding of the received response.
      Specified by:
      doDecode in class AbstractTranscoder<ByteArrayDocument,​byte[]>
      Parameters:
      id - the id of the document.
      content - the encoded content of the document.
      cas - the cas value of the document.
      expiry - the expiration time of the document.
      flags - the flags set on the document.
      status - the response status.
      Returns:
      the decoded document.
      Throws:
      Exception - if something goes wrong during the decode process.
    • doEncode

      protected Tuple2<com.couchbase.client.deps.io.netty.buffer.ByteBuf,​Integer> doEncode​(ByteArrayDocument document) throws Exception
      Description copied from class: AbstractTranscoder
      Perform the encoding of the request document.
      Specified by:
      doEncode in class AbstractTranscoder<ByteArrayDocument,​byte[]>
      Parameters:
      document - the document to encode.
      Returns:
      A tuple consisting of the encoded content and the flags to set.
      Throws:
      Exception - if something goes wrong during the encode process.
    • newDocument

      public ByteArrayDocument newDocument​(String id, int expiry, byte[] content, long cas)
      Description copied from interface: Transcoder
      Creates a new Document with the passed in information. Use the one with the mutation token instead (Transcoder.newDocument(String, int, Object, long, MutationToken)).
      Parameters:
      id - the id of the document.
      expiry - the document expiration.
      content - the document content.
      cas - the documents cas value.
      Returns:
      the created document.
    • newDocument

      public ByteArrayDocument newDocument​(String id, int expiry, byte[] content, long cas, MutationToken mutationToken)
      Description copied from class: AbstractTranscoder
      Default implementation for backwards compatibility.
      Specified by:
      newDocument in interface Transcoder<ByteArrayDocument,​byte[]>
      Overrides:
      newDocument in class AbstractTranscoder<ByteArrayDocument,​byte[]>
      Parameters:
      id - the id of the document.
      expiry - the document expiration.
      content - the document content.
      cas - the documents cas value.
      mutationToken - the documents mutation token.
      Returns:
      the created document.
    • documentType

      public Class<ByteArrayDocument> documentType()