Class LazyLeafOperations


  • @Beta
    public final class LazyLeafOperations
    extends Object
    Support utilities for dealing with Maps which would normally hold DataContainerChild values, but are modified to eliminate LeafNode instances.

    This class holds implementation logic which controls lifecycle of LeafNodes by providing a central policy point for how the implementation treats these nodes. There are two modes of operation:

    • eager, which means leaf nodes are retained by their parent
    • lazy, which means leaf nodes are created whenever they are queried and no attempt is made to retain them

    Selection of the mode in effect is available through "org.opendaylight.yangtools.yang.data.impl.schema.nodes.lazy-leaves" system property.

    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static Optional<org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild<?,​?>> findChild​(Map<org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument,​Object> map, org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument key)  
      static @Nullable org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild<?,​?> getChild​(Map<org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument,​Object> map, org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument key)  
      static @NonNull Collection<org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild<?,​?>> getValue​(Map<org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument,​Object> map)  
      static boolean isEnabled()
      A boolean flag indicating whether leaf nodes are being treated as expendable.
      static void putChild​(Map<org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument,​Object> map, org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild<?,​?> child)  
    • Method Detail

      • isEnabled

        public static boolean isEnabled()
        A boolean flag indicating whether leaf nodes are being treated as expendable.
        Returns:
        True if NormalizedNode implementations in this artifact are treating leaf nodes as transient, i.e. do not retain them.
      • findChild

        public static Optional<org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild<?,​?>> findChild​(Map<org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument,​Object> map,
                                                                                                                        org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument key)
      • getChild

        public static @Nullable org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild<?,​?> getChild​(Map<org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument,​Object> map,
                                                                                                                       org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument key)
      • putChild

        public static void putChild​(Map<org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument,​Object> map,
                                    org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild<?,​?> child)
      • getValue

        public static @NonNull Collection<org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild<?,​?>> getValue​(Map<org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument,​Object> map)