Class DataObjectCodecContext<D extends DataObject,T extends CompositeRuntimeType>
java.lang.Object
org.opendaylight.yangtools.binding.data.codec.impl.CommonDataObjectCodecContext<D,T>
org.opendaylight.yangtools.binding.data.codec.impl.DataObjectCodecContext<D,T>
- All Implemented Interfaces:
BindingCodecTreeNode
,BindingDataContainerCodecTreeNode<D>
,BindingDataContainerWriter<D>
,BindingDataObjectCodecTreeNode<D>
,BindingDataObjectCodecTreeParent<Empty>
,BindingNormalizedNodeCodec<D>
,BindingObjectCodecTreeNode
,CommonDataObjectCodecTreeNode<D>
@Beta
public abstract sealed class DataObjectCodecContext<D extends DataObject,T extends CompositeRuntimeType>
extends CommonDataObjectCodecContext<D,T>
implements BindingDataObjectCodecTreeNode<D>
This class is an implementation detail. It is public only due to technical reasons and may change at any time.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.opendaylight.yangtools.binding.data.codec.api.BindingDataContainerCodecTreeNode
BindingDataContainerCodecTreeNode.ChildAddressabilitySummary
-
Method Summary
Modifier and TypeMethodDescriptionprotected final <V> @NonNull V
childNonNull
(@Nullable V nullable, Class<?> childClass, String message, Object... args) protected final <V> @NonNull V
childNonNull
(@Nullable V nullable, QName child, String message, Object... args) protected final <V> @NonNull V
childNonNull
(@Nullable V nullable, YangInstanceIdentifier.PathArgument child, String message, Object... args) createCachingCodec
(ImmutableCollection<Class<? extends BindingObject>> cacheSpecifier) Returns codec which uses caches serialization / deserialization results.DeserializesYangInstanceIdentifier.PathArgument
for current node.Returns binding class of interface which represents API of current schema node.Return a summary of addressability of potential children.final <C extends DataObject>
org.opendaylight.yangtools.binding.data.codec.impl.DataContainerCodecContext<C, ?, ?> getStreamChild
(Class<C> childClass) Returns child context as if it was walked byBindingStreamEventWriter
.final NormalizedNode
Converts from Binding to Normalized Node representation of data.serializePathArgument
(DataObjectStep<?> step) Serializes the instance identifier step for current node.final <C extends DataObject>
org.opendaylight.yangtools.binding.data.codec.impl.DataContainerCodecContext<C, ?, ?> streamChild
(Class<C> childClass) Returns child context as if it was walked byBindingStreamEventWriter
.toString()
final void
writeTo
(NormalizedNodeStreamWriter writer, D dataContainer) Write a particular object to target writer.Returns nested node context using suppliedYangInstanceIdentifier.PathArgument
.Methods inherited from class org.opendaylight.yangtools.binding.data.codec.impl.CommonDataObjectCodecContext
bindingArg, bindingPathArgumentChild, getBindingPathArgument, getSchema
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.opendaylight.yangtools.binding.data.codec.api.BindingCodecTreeNode
getSchema
Methods inherited from interface org.opendaylight.yangtools.binding.data.codec.api.BindingDataContainerCodecTreeNode
bindingPathArgumentChild, getBindingClass, getChildAddressabilitySummary, streamAugmentation, streamChild, streamDataObject, yangPathArgumentChild
Methods inherited from interface org.opendaylight.yangtools.binding.data.codec.api.BindingDataObjectCodecTreeParent
getStreamAugmentation, getStreamChild, getStreamDataObject
Methods inherited from interface org.opendaylight.yangtools.binding.data.codec.api.BindingNormalizedNodeCodec
deserialize
-
Method Details
-
deserializePathArgument
Description copied from interface:CommonDataObjectCodecTreeNode
DeserializesYangInstanceIdentifier.PathArgument
for current node.- Specified by:
deserializePathArgument
in interfaceCommonDataObjectCodecTreeNode<D extends DataObject>
- Parameters:
arg
- aYangInstanceIdentifier.PathArgument
, may be null ifYangInstanceIdentifier
does not have a representation for current node (e.g. case).- Returns:
DataObjectStep
, may be null ifDataObjectReference
does not have a representation for current node (e.g. choice or case).
-
serializePathArgument
Description copied from interface:CommonDataObjectCodecTreeNode
Serializes the instance identifier step for current node.- Specified by:
serializePathArgument
in interfaceCommonDataObjectCodecTreeNode<D extends DataObject>
- Parameters:
step
-DataObjectStep
, may be null ifDataObjectReference
does not have a representation for current node (e.g. choice or case).- Returns:
YangInstanceIdentifier.PathArgument
, may be null ifYangInstanceIdentifier
does not have representation for current node (e.g. case).
-
serialize
Description copied from interface:BindingNormalizedNodeCodec
Converts from Binding to Normalized Node representation of data.- Specified by:
serialize
in interfaceBindingNormalizedNodeCodec<D extends DataObject>
- Parameters:
data
- Binding representation of data- Returns:
- Normalized Node representation of data
-
writeTo
Description copied from interface:BindingDataContainerWriter
Write a particular object to target writer.- Specified by:
writeTo
in interfaceBindingDataContainerWriter<D extends DataObject>
- Parameters:
writer
- target writerdataContainer
- DataContainer to write- Throws:
IOException
- when an I/O error occurs
-
createCachingCodec
public final BindingNormalizedNodeCachingCodec<D> createCachingCodec(ImmutableCollection<Class<? extends BindingObject>> cacheSpecifier) Description copied from interface:BindingDataObjectCodecTreeNode
Returns codec which uses caches serialization / deserialization results.Caching may introduce performance penalty to serialization / deserialization but may decrease use of heap for repetitive objects.
- Specified by:
createCachingCodec
in interfaceBindingDataObjectCodecTreeNode<D extends DataObject>
- Parameters:
cacheSpecifier
- Set of objects, for which cache may be in place- Returns:
- Codec which uses cache for serialization / deserialization.
-
getBindingClass
Description copied from interface:BindingDataContainerCodecTreeNode
Returns binding class of interface which represents API of current schema node. The result is same as invokingBindingContract.implementedInterface()
on instance of data.- Specified by:
getBindingClass
in interfaceBindingDataContainerCodecTreeNode<D extends DataContainer>
- Specified by:
getBindingClass
in interfaceBindingObjectCodecTreeNode
- Returns:
- interface which defines API of binding representation of data.
-
getChildAddressabilitySummary
public final BindingDataContainerCodecTreeNode.ChildAddressabilitySummary getChildAddressabilitySummary()Description copied from interface:BindingDataContainerCodecTreeNode
Return a summary of addressability of potential children. Binding specification does not allow all DOM tree elements to be directly addressed, which means some recursive tree operations, like data tree changes do not have a one-to-one mapping from DOM to binding in all cases. This method provides an optimization hint to guide translation of data structures, allowing for fast paths when all children are known to either be addressable or non-addressable.- Specified by:
getChildAddressabilitySummary
in interfaceBindingDataContainerCodecTreeNode<D extends DataContainer>
- Returns:
- Summary children addressability.
-
yangPathArgumentChild
public org.opendaylight.yangtools.binding.data.codec.impl.CodecContext yangPathArgumentChild(YangInstanceIdentifier.PathArgument arg) Description copied from interface:BindingDataContainerCodecTreeNode
Returns nested node context using suppliedYangInstanceIdentifier.PathArgument
.- Specified by:
yangPathArgumentChild
in interfaceBindingDataContainerCodecTreeNode<D extends DataContainer>
- Parameters:
arg
- aYangInstanceIdentifier.PathArgument
- Returns:
- Context of child
-
getStreamChild
public final <C extends DataObject> org.opendaylight.yangtools.binding.data.codec.impl.DataContainerCodecContext<C,?, getStreamChild?> (Class<C> childClass) Description copied from interface:BindingDataObjectCodecTreeParent
Returns child context as if it was walked byBindingStreamEventWriter
. This means that to enter case, one must issuegetStreamChild(ChoiceClass).getStreamChild(CaseClass)
.- Specified by:
getStreamChild
in interfaceBindingDataObjectCodecTreeParent<D extends DataContainer>
- Type Parameters:
C
- Stream child DataObject type- Parameters:
childClass
- Child class by Binding Stream navigation- Returns:
- Context of child
-
streamChild
public final <C extends DataObject> org.opendaylight.yangtools.binding.data.codec.impl.DataContainerCodecContext<C,?, streamChild?> (Class<C> childClass) Description copied from interface:BindingDataContainerCodecTreeNode
Returns child context as if it was walked byBindingStreamEventWriter
. This means that to enter case, one must issue getChild(ChoiceClass).getChild(CaseClass).This method differs from
BindingDataObjectCodecTreeParent.getStreamChild(Class)
, that is less strict for interfaces representing augmentation and cases, that may returnBindingCodecTreeNode
even if augmentation interface containing same data was supplied and does not represent augmentation of this node.- Specified by:
streamChild
in interfaceBindingDataContainerCodecTreeNode<D extends DataContainer>
- Parameters:
childClass
- Child class by Binding Stream navigation- Returns:
- Context of child or
null
is supplied class is not applicable in context.
-
toString
-
childNonNull
protected final <V> @NonNull V childNonNull(@Nullable V nullable, YangInstanceIdentifier.PathArgument child, String message, Object... args) -
childNonNull
-
childNonNull
-