public class JsonDocument extends AbstractDocument<JsonObject> implements Serializable
Represents a Document
that contains a JsonObject
as the content.
The JsonDocument
is one of the most integral parts of the API. It is intended to be used as a canonical wrapper around retrieval and mutation operations, abstracting away JSON internals.
Note that there is no public constructor available, but rather a multitude of factory methods that allow you to work nicely with this immutable value object. It is possible to construct empty/fresh ones, but also copies will be created from passed in documents, allowing you to override specific parts during the copy process.
This document is interoperable with other SDKs.
It can always be the case that some or all fields of a JsonDocument
are not set, depending on the operation performed. Here are the accessible fields and their default values:
+—————+———+ | Field | Default | +—————+———+ | id | null | | content | null | | cas | 0 | | expiry | 0 | | status | null | | mutationToken | null | +—————+———+
Modifier and Type | Method and Description |
---|---|
static JsonDocument |
create(String id)
Creates a
JsonDocument which the document id. |
static JsonDocument |
create(String id,
int expiry,
JsonObject content)
Creates a
JsonDocument which the document id, JSON content and the expiration time. |
static JsonDocument |
create(String id,
int expiry,
JsonObject content,
long cas)
Creates a
JsonDocument which the document id, JSON content, CAS value, expiration time and status code. |
static JsonDocument |
create(String id,
int expiry,
JsonObject content,
long cas,
MutationToken mutationToken)
Creates a
JsonDocument which the document id, JSON content, CAS value, expiration time and status code. |
static JsonDocument |
create(String id,
JsonObject content)
Creates a
JsonDocument which the document id and JSON content. |
static JsonDocument |
create(String id,
JsonObject content,
long cas)
Creates a
JsonDocument which the document id, JSON content and the CAS value. |
static JsonDocument |
from(JsonDocument doc,
JsonObject content)
Creates a copy from a different
JsonDocument , but changes the content. |
static JsonDocument |
from(JsonDocument doc,
long cas)
Creates a copy from a different
JsonDocument , but changes the CAS value. |
static JsonDocument |
from(JsonDocument doc,
String id)
Creates a copy from a different
JsonDocument , but changes the document ID. |
static JsonDocument |
from(JsonDocument doc,
String id,
JsonObject content)
Creates a copy from a different
JsonDocument , but changes the document ID and content. |
cas, content, equals, expiry, hashCode, id, mutationToken, readFromSerializedStream, toString, writeToSerializedStream
public static JsonDocument create(String id)
Creates a JsonDocument
which the document id.
id
- the per-bucket unique document id.JsonDocument
.public static JsonDocument create(String id, JsonObject content)
Creates a JsonDocument
which the document id and JSON content.
id
- the per-bucket unique document id.content
- the content of the document.JsonDocument
.public static JsonDocument create(String id, JsonObject content, long cas)
Creates a JsonDocument
which the document id, JSON content and the CAS value.
id
- the per-bucket unique document id.content
- the content of the document.cas
- the CAS (compare and swap) value for optimistic concurrency.JsonDocument
.public static JsonDocument create(String id, int expiry, JsonObject content)
Creates a JsonDocument
which the document id, JSON content and the expiration time.
id
- the per-bucket unique document id.content
- the content of the document.expiry
- the expiration time of the document.JsonDocument
.public static JsonDocument create(String id, int expiry, JsonObject content, long cas)
Creates a JsonDocument
which the document id, JSON content, CAS value, expiration time and status code.
This factory method is normally only called within the client library when a response is analyzed and a document is returned which is enriched with the status code. It does not make sense to pre populate the status field from the user level code.
id
- the per-bucket unique document id.content
- the content of the document.cas
- the CAS (compare and swap) value for optimistic concurrency.expiry
- the expiration time of the document.JsonDocument
.public static JsonDocument create(String id, int expiry, JsonObject content, long cas, MutationToken mutationToken)
Creates a JsonDocument
which the document id, JSON content, CAS value, expiration time and status code.
This factory method is normally only called within the client library when a response is analyzed and a document is returned which is enriched with the status code. It does not make sense to pre populate the status field from the user level code.
id
- the per-bucket unique document id.content
- the content of the document.cas
- the CAS (compare and swap) value for optimistic concurrency.expiry
- the expiration time of the document.JsonDocument
.public static JsonDocument from(JsonDocument doc, String id)
Creates a copy from a different JsonDocument
, but changes the document ID.
doc
- the original JsonDocument
to copy.id
- the per-bucket unique document id.JsonDocument
with the changed properties.public static JsonDocument from(JsonDocument doc, JsonObject content)
Creates a copy from a different JsonDocument
, but changes the content.
doc
- the original JsonDocument
to copy.content
- the content of the document.JsonDocument
with the changed properties.public static JsonDocument from(JsonDocument doc, String id, JsonObject content)
Creates a copy from a different JsonDocument
, but changes the document ID and content.
doc
- the original JsonDocument
to copy.id
- the per-bucket unique document id.content
- the content of the document.JsonDocument
with the changed properties.public static JsonDocument from(JsonDocument doc, long cas)
Creates a copy from a different JsonDocument
, but changes the CAS value.
doc
- the original JsonDocument
to copy.cas
- the CAS (compare and swap) value for optimistic concurrency.JsonDocument
with the changed properties.Copyright © 2015 Couchbase, Inc.