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 Summary
Constructors Modifier Constructor Description protected
AbstractDocument()
Constructor needed for possible subclass serialization.protected
AbstractDocument(String id, int expiry, T content, long cas)
protected
AbstractDocument(String id, int expiry, T content, long cas, MutationToken mutationToken)
-
Method Summary
Modifier and Type Method Description long
cas()
The last-known CAS value for theDocument
(0 if not set).T
content()
The content of theDocument
.boolean
equals(Object o)
int
expiry()
The optional expiration time for theDocument
(0 if not set).int
hashCode()
String
id()
The per-bucket unique ID of theDocument
.MutationToken
mutationToken()
The optional, opaque mutation token set after a successful mutation and if enabled on the environment.protected void
readFromSerializedStream(ObjectInputStream stream)
Helper method to create the document from an object input stream, used for serialization purposes.String
toString()
protected void
writeToSerializedStream(ObjectOutputStream stream)
Helper method to write the current document state to the output stream for serialization purposes.
-
Constructor Details
-
AbstractDocument
protected AbstractDocument()Constructor needed for possible subclass serialization. -
AbstractDocument
-
AbstractDocument
protected AbstractDocument(String id, int expiry, T content, long cas, MutationToken mutationToken)
-
-
Method Details
-
id
Description copied from interface:Document
The per-bucket unique ID of theDocument
. -
cas
public long cas()Description copied from interface:Document
The last-known CAS value for theDocument
(0 if not set). -
expiry
public int expiry()Description copied from interface:Document
The optional expiration time for theDocument
(0 if not set). -
content
Description copied from interface:Document
The content of theDocument
. -
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 interfaceDocument<T>
- Returns:
- the mutation token if set, otherwise null.
-
toString
-
equals
-
hashCode
public int hashCode() -
writeToSerializedStream
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, ClassNotFoundExceptionHelper method to create the document from an object input stream, used for serialization purposes.- Parameters:
stream
- the stream to read from.- Throws:
IOException
ClassNotFoundException
-