Class AbstractDocument<T>

java.lang.Object
com.couchbase.client.java.document.AbstractDocument<T>
All Implemented Interfaces:
Document<T>
Direct Known Subclasses:
BinaryDocument, ByteArrayDocument, JsonArrayDocument, JsonBooleanDocument, JsonDocument, JsonDoubleDocument, JsonLongDocument, JsonStringDocument, LegacyDocument, RawJsonDocument, SerializableDocument, StringDocument

public abstract class AbstractDocument<T>
extends Object
implements Document<T>
Common parent implementation of a Document. It is recommended that all Document implementations extend from this class so that parameter checks are consistently applied. It also ensures that equals and hashcode are applied on the contents and therefore comparisons work as expected.
Since:
2.0.0
Author:
Michael Nitschinger
  • Constructor Details

    • AbstractDocument

      protected AbstractDocument()
      Constructor needed for possible subclass serialization.
    • AbstractDocument

      protected AbstractDocument​(String id, int expiry, T content, long cas)
    • AbstractDocument

      protected AbstractDocument​(String id, int expiry, T content, long cas, MutationToken mutationToken)
  • Method Details

    • id

      public String id()
      Description copied from interface: Document
      The per-bucket unique ID of the Document.
      Specified by:
      id in interface Document<T>
      Returns:
      the document id.
    • cas

      public long cas()
      Description copied from interface: Document
      The last-known CAS value for the Document (0 if not set).
      Specified by:
      cas in interface Document<T>
      Returns:
      the CAS value if set.
    • expiry

      public int expiry()
      Description copied from interface: Document
      The optional expiration time for the Document (0 if not set).
      Specified by:
      expiry in interface Document<T>
      Returns:
      the expiration time.
    • content

      public T content()
      Description copied from interface: Document
      The content of the Document.
      Specified by:
      content in interface Document<T>
      Returns:
      the content.
    • mutationToken

      public MutationToken mutationToken()
      Description copied from interface: Document
      The optional, opaque mutation token set after a successful mutation and if enabled on the environment. Note that the mutation token is always null, unless they are explicitly enabled on the environment, the server version is supported (>= 4.0.0) and the mutation operation succeeded. If set, it can be used for enhanced durability requirements, as well as optimized consistency for N1QL queries.
      Specified by:
      mutationToken in interface Document<T>
      Returns:
      the mutation token if set, otherwise null.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals​(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • writeToSerializedStream

      protected void writeToSerializedStream​(ObjectOutputStream stream) throws IOException
      Helper method to write the current document state to the output stream for serialization purposes.
      Parameters:
      stream - the stream to write to.
      Throws:
      IOException
    • readFromSerializedStream

      protected void readFromSerializedStream​(ObjectInputStream stream) throws IOException, ClassNotFoundException
      Helper method to create the document from an object input stream, used for serialization purposes.
      Parameters:
      stream - the stream to read from.
      Throws:
      IOException
      ClassNotFoundException