@InterfaceStability.Experimental @InterfaceAudience.Public public interface FragmentTranscoder
An interface for transcoding sub-document fragments (as found in and used by DocumentFragment#fragment()
).
This is used internally by the bucket to encode fragments (for mutations) or decode fragments returned by the server (eg. during a Bucket#getIn(String, String, Class)
).
Modifier and Type | Method and Description |
---|---|
<T> T |
decode(com.couchbase.client.deps.io.netty.buffer.ByteBuf encoded,
Class<? extends T> clazz)
Decode content in a
ByteBuf without releasing it. |
<T> T |
decodeWithMessage(com.couchbase.client.deps.io.netty.buffer.ByteBuf encoded,
Class<? extends T> clazz,
String transcodingErrorMessage)
Decode content in a
ByteBuf without releasing it. |
<T> com.couchbase.client.deps.io.netty.buffer.ByteBuf |
encode(T value)
Encode a value (usually from a
DocumentFragment ) to a ByteBuf suitable for use in the sub-document protocol. |
<T> com.couchbase.client.deps.io.netty.buffer.ByteBuf |
encodeWithMessage(T value,
String transcodingErrorMessage)
Encode a value (usually from a
DocumentFragment ) to a ByteBuf suitable for use in the sub-document protocol. |
<T> T decode(com.couchbase.client.deps.io.netty.buffer.ByteBuf encoded, Class<? extends T> clazz) throws TranscodingException
Decode content in a ByteBuf
without releasing it. Suitable for populating a DocumentFragment
’s content.
encoded
- the encoded fragment value (will not be released).clazz
- the target class for decoded value. Using Object.class
implies a generic decode, where dictionaries are represented by JsonObject
and arrays by JsonArray
.T
- the type of the decoded fragment.TranscodingException
- if the decoding couldn’t happen.<T> T decodeWithMessage(com.couchbase.client.deps.io.netty.buffer.ByteBuf encoded, Class<? extends T> clazz, String transcodingErrorMessage) throws TranscodingException
Decode content in a ByteBuf
without releasing it. Suitable for populating a DocumentFragment
’s content.
encoded
- the encoded fragment value (will not be released).clazz
- the target class for decoded value. Using Object.class
implies a generic decode, where dictionaries are represented by JsonObject
and arrays by JsonArray
.transcodingErrorMessage
- the error message to be used in the thrown TranscodingException
if the decoding couldn’t happen.T
- the type of the decoded fragment.TranscodingException
- if the decoding couldn’t happen.<T> com.couchbase.client.deps.io.netty.buffer.ByteBuf encode(T value) throws TranscodingException
Encode a value (usually from a DocumentFragment
) to a ByteBuf
suitable for use in the sub-document protocol.
value
- the value to encode.T
- the type of the fragment being encoded.ByteBuf
representation of the fragment value.TranscodingException
- if the encoding couldn’t happen.<T> com.couchbase.client.deps.io.netty.buffer.ByteBuf encodeWithMessage(T value, String transcodingErrorMessage) throws TranscodingException
Encode a value (usually from a DocumentFragment
) to a ByteBuf
suitable for use in the sub-document protocol.
value
- the value to encode.transcodingErrorMessage
- the error message to be used in the thrown TranscodingException
if the encoding couldn’t happen.T
- the type of the fragment being encoded.ByteBuf
representation of the fragment value.TranscodingException
- if the encoding couldn’t happen.Copyright © 2015 Couchbase, Inc.