@Beta public final class JSONCodecFactory extends AbstractCodecFactory<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>>
SchemaContext
, but can be reused by multiple JSONNormalizedNodeStreamWriter
s.
There are multiple implementations available, each with distinct thread-safety, CPU/memory trade-offs and reuse
characteristics. See getShared(SchemaContext)
, getPrecomputed(SchemaContext)
,
createLazy(SchemaContext)
and createSimple(SchemaContext)
for details.
Modifier and Type | Method and Description |
---|---|
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> |
binaryCodec(BinaryTypeDefinition type) |
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> |
bitsCodec(BitsTypeDefinition type) |
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> |
booleanCodec(BooleanTypeDefinition type) |
static JSONCodecFactory |
createLazy(SchemaContext context)
Deprecated.
Use
JSONCodecFactorySupplier.createLazy(SchemaContext) instead. |
static JSONCodecFactory |
createSimple(SchemaContext context)
Deprecated.
Use
JSONCodecFactorySupplier.createSimple(SchemaContext) instead. |
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> |
decimalCodec(DecimalTypeDefinition type) |
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> |
emptyCodec(EmptyTypeDefinition type) |
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> |
enumCodec(EnumTypeDefinition type) |
static JSONCodecFactory |
getPrecomputed(SchemaContext context)
Deprecated.
|
static Optional<JSONCodecFactory> |
getPrecomputedIfAvailable(SchemaContext context)
Deprecated.
|
static JSONCodecFactory |
getShared(SchemaContext context)
Deprecated.
Use
JSONCodecFactorySupplier.getShared(SchemaContext) instead. |
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> |
identityRefCodec(IdentityrefTypeDefinition type,
QNameModule module) |
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> |
instanceIdentifierCodec(InstanceIdentifierTypeDefinition type) |
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> |
int16Codec(Int16TypeDefinition type) |
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> |
int32Codec(Int32TypeDefinition type) |
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> |
int64Codec(Int64TypeDefinition type) |
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> |
int8Codec(Int8TypeDefinition type) |
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> |
stringCodec(StringTypeDefinition type) |
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> |
uint16Codec(Uint16TypeDefinition type) |
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> |
uint32Codec(Uint32TypeDefinition type) |
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> |
uint64Codec(Uint64TypeDefinition type) |
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> |
uint8Codec(Uint8TypeDefinition type) |
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> |
unionCodec(UnionTypeDefinition type,
List<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>> codecs) |
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> |
unknownCodec(UnknownTypeDefinition type) |
codecFor, getSchemaContext
@Deprecated public static JSONCodecFactory getPrecomputed(SchemaContext context)
JSONCodecFactorySupplier.getPrecomputed(SchemaContext)
instead.JSONCodecFactory
for a SchemaContext. This method can, and will,
return the same instance as long as the associated SchemaContext is present. Returned object can be safely
used by multiple threads concurrently. If the SchemaContext instance does not have a cached instance
of JSONCodecFactory
, it will be completely precomputed before this method will return.
Choosing this implementation is appropriate when the memory overhead of keeping a full codec tree is not as
great a concern as predictable performance. When compared to the implementation returned by
getShared(SchemaContext)
, this implementation is expected to offer higher performance and have lower
peak memory footprint when most of the SchemaContext is actually in use.
For call sites which do not want to pay the CPU cost of pre-computing this implementation, but still would like
to use it if is available (by being populated by some other caller), you can use
getPrecomputedIfAvailable(SchemaContext)
.
context
- SchemaContext instanceJSONCodecFactory
NullPointerException
- if context is null@Deprecated public static Optional<JSONCodecFactory> getPrecomputedIfAvailable(SchemaContext context)
JSONCodecFactorySupplier.getPrecomputedIfAvailable(SchemaContext)
instead.JSONCodecFactory
for a SchemaContext, if it is available. This
method is a non-blocking equivalent of getPrecomputed(SchemaContext)
for use in code paths where
the potential of having to pre-compute the implementation is not acceptable. One such scenario is when the
code base wants to opportunistically take advantage of pre-computed version, but is okay with a fallback to
a different implementation.context
- SchemaContext instanceJSONCodecFactory
, or absent if such an implementation is not available.NullPointerException
- if context is null@Deprecated public static JSONCodecFactory getShared(SchemaContext context)
JSONCodecFactorySupplier.getShared(SchemaContext)
instead.JSONCodecFactory
for a SchemaContext. This method can, and will,
return the same instance as long as the associated SchemaContext is present or the factory is not invalidated
by memory pressure. Returned object can be safely used by multiple threads concurrently.
Choosing this implementation is a safe default, as it will not incur prohibitive blocking, nor will it tie up memory in face of pressure.
context
- SchemaContext instanceJSONCodecFactory
NullPointerException
- if context is null@Deprecated public static JSONCodecFactory createLazy(SchemaContext context)
JSONCodecFactorySupplier.createLazy(SchemaContext)
instead.JSONCodecFactory
for a SchemaContext. This method will
return distinct objects every time it is invoked. Returned object may not be used from multiple threads
concurrently.
This implementation is appropriate for one-off serialization from a single thread. It will aggressively cache codecs for reuse and will tie them up in memory until the factory is freed.
context
- SchemaContext instanceJSONCodecFactory
NullPointerException
- if context is null@Deprecated public static JSONCodecFactory createSimple(SchemaContext context)
JSONCodecFactorySupplier.createSimple(SchemaContext)
instead.JSONCodecFactory
for a SchemaContext
. This method will return
distinct objects every time it is invoked. Returned object may be use from multiple threads concurrently.
This implementation exists mostly for completeness only, as it does not perform any caching at all and each codec is computed every time it is requested. This may be useful in extremely constrained environments, where memory footprint is more critical than performance.
context
- SchemaContext instanceJSONCodecFactory
NullPointerException
- if context is null.protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> binaryCodec(BinaryTypeDefinition type)
binaryCodec
in class AbstractCodecFactory<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>>
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> booleanCodec(BooleanTypeDefinition type)
booleanCodec
in class AbstractCodecFactory<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>>
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> bitsCodec(BitsTypeDefinition type)
bitsCodec
in class AbstractCodecFactory<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>>
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> decimalCodec(DecimalTypeDefinition type)
decimalCodec
in class AbstractCodecFactory<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>>
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> emptyCodec(EmptyTypeDefinition type)
emptyCodec
in class AbstractCodecFactory<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>>
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> enumCodec(EnumTypeDefinition type)
enumCodec
in class AbstractCodecFactory<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>>
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> identityRefCodec(IdentityrefTypeDefinition type, QNameModule module)
identityRefCodec
in class AbstractCodecFactory<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>>
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> instanceIdentifierCodec(InstanceIdentifierTypeDefinition type)
instanceIdentifierCodec
in class AbstractCodecFactory<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>>
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> int8Codec(Int8TypeDefinition type)
int8Codec
in class AbstractCodecFactory<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>>
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> int16Codec(Int16TypeDefinition type)
int16Codec
in class AbstractCodecFactory<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>>
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> int32Codec(Int32TypeDefinition type)
int32Codec
in class AbstractCodecFactory<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>>
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> int64Codec(Int64TypeDefinition type)
int64Codec
in class AbstractCodecFactory<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>>
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> stringCodec(StringTypeDefinition type)
stringCodec
in class AbstractCodecFactory<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>>
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> uint8Codec(Uint8TypeDefinition type)
uint8Codec
in class AbstractCodecFactory<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>>
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> uint16Codec(Uint16TypeDefinition type)
uint16Codec
in class AbstractCodecFactory<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>>
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> uint32Codec(Uint32TypeDefinition type)
uint32Codec
in class AbstractCodecFactory<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>>
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> uint64Codec(Uint64TypeDefinition type)
uint64Codec
in class AbstractCodecFactory<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>>
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> unionCodec(UnionTypeDefinition type, List<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>> codecs)
unionCodec
in class AbstractCodecFactory<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>>
protected org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?> unknownCodec(UnknownTypeDefinition type)
unknownCodec
in class AbstractCodecFactory<org.opendaylight.yangtools.yang.data.codec.gson.JSONCodec<?>>
Copyright © 2019 OpenDaylight. All rights reserved.