Class AbstractDataObjectCodecContext<D extends DataObject,T extends org.opendaylight.mdsal.binding.runtime.api.CompositeRuntimeType>

java.lang.Object
org.opendaylight.mdsal.binding.dom.codec.impl.AbstractDataObjectCodecContext<D,T>
All Implemented Interfaces:
org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTreeNode, org.opendaylight.mdsal.binding.dom.codec.api.BindingDataContainerCodecTreeNode<D>, org.opendaylight.mdsal.binding.dom.codec.api.BindingDataObjectCodecTreeParent<org.opendaylight.yangtools.yang.common.Empty>, org.opendaylight.mdsal.binding.dom.codec.api.BindingObjectCodecTreeNode, org.opendaylight.mdsal.binding.dom.codec.api.CommonDataObjectCodecTreeNode<D>
Direct Known Subclasses:
DataObjectCodecContext

public abstract sealed class AbstractDataObjectCodecContext<D extends DataObject,T extends org.opendaylight.mdsal.binding.runtime.api.CompositeRuntimeType> extends Object permits DataObjectCodecContext<D,T> (not exhaustive)
Abstract base for DataObjectCodecContext and AugmentationCodecContext. They share most of their mechanics, but notably:
  1. DataObjectCodecContext has an exact DistinctNodeContainer and YangInstanceIdentifier mapping and can be the target of augmentations (i.e. can implement Augmentable contract)
  2. AugmentationNodeContext has neither of those traits and really is just a filter of its parent DistinctNodeContainer

Unfortunately Augmentation is a also a DataObject, so things get a bit messy.

While this class is public, it not part of API surface and is an implementation detail. The only reason for it being public is that it needs to be accessible by code generated at runtime.

  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.opendaylight.mdsal.binding.dom.codec.api.BindingDataContainerCodecTreeNode

    org.opendaylight.mdsal.binding.dom.codec.api.BindingDataContainerCodecTreeNode.ChildAddressabilitySummary
  • Method Summary

    Modifier and Type
    Method
    Description
    protected final DataObjectStep<?>
     
    final org.opendaylight.mdsal.binding.dom.codec.impl.CommonDataObjectCodecContext<?,?>
    bindingPathArgumentChild(DataObjectStep<?> step, List<org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument> builder)
     
    protected final <V> @NonNull V
    childNonNull(@Nullable V nullable, Class<?> childClass, String message, Object... args)
     
    protected final <V> @NonNull V
    childNonNull(@Nullable V nullable, org.opendaylight.yangtools.yang.common.QName child, String message, Object... args)
     
    protected final <V> @NonNull V
    childNonNull(@Nullable V nullable, org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument child, String message, Object... args)
     
    final Class<D>
     
    protected DataObjectStep<?>
    getBindingPathArgument(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument domArg)
    Returns deserialized Binding Path Argument from YANG instance identifier.
    final org.opendaylight.mdsal.binding.dom.codec.api.BindingDataContainerCodecTreeNode.ChildAddressabilitySummary
     
    final org.opendaylight.yangtools.yang.model.api.DocumentedNode.WithStatus
    Deprecated, for removal: This API element is subject to removal in a future version.
    final <C extends DataObject>
    org.opendaylight.mdsal.binding.dom.codec.impl.DataContainerCodecContext<C,?,?>
    getStreamChild(Class<C> childClass)
     
    final <C extends DataObject>
    org.opendaylight.mdsal.binding.dom.codec.impl.DataContainerCodecContext<C,?,?>
    streamChild(Class<C> childClass)
     
     
    org.opendaylight.mdsal.binding.dom.codec.impl.CodecContext
    yangPathArgumentChild(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument arg)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface org.opendaylight.mdsal.binding.dom.codec.api.BindingDataContainerCodecTreeNode

    getBindingClass, getChildAddressabilitySummary, streamAugmentation, streamChild, streamDataObject, yangPathArgumentChild

    Methods inherited from interface org.opendaylight.mdsal.binding.dom.codec.api.BindingDataObjectCodecTreeParent

    getStreamAugmentation, getStreamChild, getStreamDataObject

    Methods inherited from interface org.opendaylight.mdsal.binding.dom.codec.api.CommonDataObjectCodecTreeNode

    deserializePathArgument, serializePathArgument
  • Method Details

    • getSchema

      @Deprecated(since="13.0.0", forRemoval=true) public final org.opendaylight.yangtools.yang.model.api.DocumentedNode.WithStatus getSchema()
      Deprecated, for removal: This API element is subject to removal in a future version.
    • bindingPathArgumentChild

      public final org.opendaylight.mdsal.binding.dom.codec.impl.CommonDataObjectCodecContext<?,?> bindingPathArgumentChild(DataObjectStep<?> step, List<org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument> builder)
      Specified by:
      bindingPathArgumentChild in interface org.opendaylight.mdsal.binding.dom.codec.api.BindingDataContainerCodecTreeNode<D extends DataObject>
    • getBindingPathArgument

      protected DataObjectStep<?> getBindingPathArgument(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument domArg)
      Returns deserialized Binding Path Argument from YANG instance identifier.
    • bindingArg

      protected final DataObjectStep<?> bindingArg()
    • getBindingClass

      public final Class<D> getBindingClass()
      Specified by:
      getBindingClass in interface org.opendaylight.mdsal.binding.dom.codec.api.BindingDataContainerCodecTreeNode<D extends DataContainer>
      Specified by:
      getBindingClass in interface org.opendaylight.mdsal.binding.dom.codec.api.BindingObjectCodecTreeNode
    • getChildAddressabilitySummary

      public final org.opendaylight.mdsal.binding.dom.codec.api.BindingDataContainerCodecTreeNode.ChildAddressabilitySummary getChildAddressabilitySummary()
      Specified by:
      getChildAddressabilitySummary in interface org.opendaylight.mdsal.binding.dom.codec.api.BindingDataContainerCodecTreeNode<D extends DataContainer>
    • yangPathArgumentChild

      public org.opendaylight.mdsal.binding.dom.codec.impl.CodecContext yangPathArgumentChild(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument arg)
      Specified by:
      yangPathArgumentChild in interface org.opendaylight.mdsal.binding.dom.codec.api.BindingDataContainerCodecTreeNode<D extends DataContainer>
    • getStreamChild

      public final <C extends DataObject> org.opendaylight.mdsal.binding.dom.codec.impl.DataContainerCodecContext<C,?,?> getStreamChild(Class<C> childClass)
      Specified by:
      getStreamChild in interface org.opendaylight.mdsal.binding.dom.codec.api.BindingDataObjectCodecTreeParent<D extends DataContainer>
    • streamChild

      public final <C extends DataObject> org.opendaylight.mdsal.binding.dom.codec.impl.DataContainerCodecContext<C,?,?> streamChild(Class<C> childClass)
      Specified by:
      streamChild in interface org.opendaylight.mdsal.binding.dom.codec.api.BindingDataContainerCodecTreeNode<D extends DataContainer>
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • childNonNull

      protected final <V> @NonNull V childNonNull(@Nullable V nullable, org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument child, String message, Object... args)
    • childNonNull

      protected final <V> @NonNull V childNonNull(@Nullable V nullable, org.opendaylight.yangtools.yang.common.QName child, String message, Object... args)
    • childNonNull

      protected final <V> @NonNull V childNonNull(@Nullable V nullable, Class<?> childClass, String message, Object... args)