Class JsonTranscoder
java.lang.Object
com.couchbase.client.java.transcoder.AbstractTranscoder<JsonDocument,JsonObject>
com.couchbase.client.java.transcoder.JsonTranscoder
- All Implemented Interfaces:
Transcoder<JsonDocument,JsonObject>
public class JsonTranscoder extends AbstractTranscoder<JsonDocument,JsonObject>
A transcoder to encode and decode
JsonDocument
s.- Since:
- 2.0
- Author:
- Michael Nitschinger
-
Constructor Summary
Constructors Constructor Description JsonTranscoder()
-
Method Summary
Modifier and Type Method Description Object
byteBufJsonValueToObject(com.couchbase.client.deps.io.netty.buffer.ByteBuf input)
Converts aByteBuf
representing a valid JSON entity to a genericObject
, without releasing the buffer.JsonObject
byteBufToJsonObject(com.couchbase.client.deps.io.netty.buffer.ByteBuf input)
Converts aByteBuf
to aJsonObject
, without releasing the bufferClass<JsonDocument>
documentType()
protected JsonDocument
doDecode(String id, com.couchbase.client.deps.io.netty.buffer.ByteBuf content, long cas, int expiry, int flags, ResponseStatus status)
Perform the decoding of the received response.protected Tuple2<com.couchbase.client.deps.io.netty.buffer.ByteBuf,Integer>
doEncode(JsonDocument document)
Perform the encoding of the request document.com.couchbase.client.deps.io.netty.buffer.ByteBuf
jsonObjectToByteBuf(JsonObject input)
String
jsonObjectToString(JsonObject input)
JsonDocument
newDocument(String id, int expiry, JsonObject content, long cas)
Creates a new Document with the passed in information.JsonDocument
newDocument(String id, int expiry, JsonObject content, long cas, MutationToken mutationToken)
Default implementation for backwards compatibility.JsonObject
stringToJsonObject(String input)
Methods inherited from class com.couchbase.client.java.transcoder.AbstractTranscoder
decode, encode, shouldAutoReleaseOnDecode, shouldAutoReleaseOnError
-
Constructor Details
-
JsonTranscoder
public JsonTranscoder()
-
-
Method Details
-
documentType
-
doEncode
protected Tuple2<com.couchbase.client.deps.io.netty.buffer.ByteBuf,Integer> doEncode(JsonDocument document) throws ExceptionDescription copied from class:AbstractTranscoder
Perform the encoding of the request document.- Specified by:
doEncode
in classAbstractTranscoder<JsonDocument,JsonObject>
- 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.
-
doDecode
protected JsonDocument doDecode(String id, com.couchbase.client.deps.io.netty.buffer.ByteBuf content, long cas, int expiry, int flags, ResponseStatus status) throws ExceptionDescription copied from class:AbstractTranscoder
Perform the decoding of the received response.- Specified by:
doDecode
in classAbstractTranscoder<JsonDocument,JsonObject>
- 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.
-
newDocument
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 JsonDocument newDocument(String id, int expiry, JsonObject content, long cas, MutationToken mutationToken)Description copied from class:AbstractTranscoder
Default implementation for backwards compatibility.- Specified by:
newDocument
in interfaceTranscoder<JsonDocument,JsonObject>
- Overrides:
newDocument
in classAbstractTranscoder<JsonDocument,JsonObject>
- 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.
-
jsonObjectToString
- Throws:
Exception
-
jsonObjectToByteBuf
public com.couchbase.client.deps.io.netty.buffer.ByteBuf jsonObjectToByteBuf(JsonObject input) throws Exception- Throws:
Exception
-
stringToJsonObject
- Throws:
Exception
-
byteBufToJsonObject
public JsonObject byteBufToJsonObject(com.couchbase.client.deps.io.netty.buffer.ByteBuf input) throws ExceptionConverts aByteBuf
to aJsonObject
, without releasing the buffer- Parameters:
input
- the buffer to convert. It won't be cleared (contrary toclassical decode
)- Returns:
- a JsonObject decoded from the buffer
- Throws:
Exception
-
byteBufJsonValueToObject
public Object byteBufJsonValueToObject(com.couchbase.client.deps.io.netty.buffer.ByteBuf input) throws ExceptionConverts aByteBuf
representing a valid JSON entity to a genericObject
, without releasing the buffer. The entity can either be a JSON object, array or scalar value, potentially with leading whitespace (which gets ignored). Detection of JSON objects and arrays is attempted in order not to incur an additional conversion step (JSON to Map to JsonObject for example), but if a Map or List is produced, it will be transformed toJsonObject
orJsonArray
(with a warning logged).- Parameters:
input
- the buffer to convert. It won't be cleared (contrary toclassical decode
)- Returns:
- a Object decoded from the buffer
- Throws:
Exception
-