Class RootScatterGather


  • public final class RootScatterGather
    extends Object
    Utility methods for dealing with datastore root ContainerNode with respect to module shards.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static @NonNull org.opendaylight.yangtools.yang.data.api.schema.ContainerNode castRootNode​(org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode node)
      Check whether a NormalizedNode represents a root container and return it cast to ContainerNode.
      static @NonNull com.google.common.util.concurrent.FluentFuture<Optional<org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode>> gather​(ActorUtils actorUtils, Stream<com.google.common.util.concurrent.FluentFuture<Optional<org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode>>> readFutures)
      Reconstruct root container from a set of constituents.
      static <T> @NonNull Stream<RootScatterGather.ShardContainer<T>> scatterAll​(org.opendaylight.yangtools.yang.data.api.schema.ContainerNode rootNode, Function<org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument,​T> childToShard, Stream<T> allShards)  
      static <T> @NonNull Stream<RootScatterGather.ShardContainer<T>> scatterTouched​(org.opendaylight.yangtools.yang.data.api.schema.ContainerNode rootNode, Function<org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument,​T> childToShard)
      Split root container into per-shard root containers.
    • Method Detail

      • castRootNode

        public static @NonNull org.opendaylight.yangtools.yang.data.api.schema.ContainerNode castRootNode​(org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode node)
        Check whether a NormalizedNode represents a root container and return it cast to ContainerNode.
        Parameters:
        node - a normalized node
        Returns:
        node cast to ContainerNode
        Throws:
        NullPointerException - if node is null
        IllegalArgumentException - if node is not a ContainerNode
      • gather

        public static @NonNull com.google.common.util.concurrent.FluentFuture<Optional<org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode>> gather​(ActorUtils actorUtils,
                                                                                                                                                               Stream<com.google.common.util.concurrent.FluentFuture<Optional<org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode>>> readFutures)
        Reconstruct root container from a set of constituents.
        Parameters:
        actorUtils - ActorUtils reference
        readFutures - Consitutent read futures
        Returns:
        A composite future
      • scatterAll

        public static <T> @NonNull Stream<RootScatterGather.ShardContainer<T>> scatterAll​(org.opendaylight.yangtools.yang.data.api.schema.ContainerNode rootNode,
                                                                                          Function<org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument,​T> childToShard,
                                                                                          Stream<T> allShards)
      • scatterTouched

        public static <T> @NonNull Stream<RootScatterGather.ShardContainer<T>> scatterTouched​(org.opendaylight.yangtools.yang.data.api.schema.ContainerNode rootNode,
                                                                                              Function<org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument,​T> childToShard)
        Split root container into per-shard root containers.
        Type Parameters:
        T - Shard reference type
        Parameters:
        rootNode - Root container to be split up
        childToShard - Mapping function from child YangInstanceIdentifier.PathArgument to shard reference
        Returns:
        Stream of RootScatterGather.ShardContainers, one for each touched shard