Deprecate DOMDataTreeProducer-related classes
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / sharding / DistributedShardModification.java
index 2bd0dae76cdc61574a417ca014e8ca0d664e81c6..25fab74716d8b4b37a5926f523fa814ab7f51d3a 100644 (file)
@@ -5,10 +5,10 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.controller.cluster.sharding;
 
-import com.google.common.base.Preconditions;
+import static java.util.Objects.requireNonNull;
+
 import java.util.Map;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteCursor;
@@ -24,6 +24,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgum
  * Shard modification that consists of the whole shard context, provides cursors which correctly delegate to subshards
  * if any are present.
  */
+@Deprecated(forRemoval = true)
 public class DistributedShardModification extends WriteableNodeWithSubshard {
 
     private final DistributedShardModificationContext context;
@@ -33,8 +34,8 @@ public class DistributedShardModification extends WriteableNodeWithSubshard {
                                         final Map<PathArgument, WriteableModificationNode> subshards,
                                         final Map<DOMDataTreeIdentifier, ForeignShardModificationContext> childShards) {
         super(subshards);
-        this.context = Preconditions.checkNotNull(context);
-        this.childShards = Preconditions.checkNotNull(childShards);
+        this.context = requireNonNull(context);
+        this.childShards = requireNonNull(childShards);
     }
 
     @Override
@@ -57,7 +58,9 @@ public class DistributedShardModification extends WriteableNodeWithSubshard {
     }
 
     DOMStoreThreePhaseCommitCohort seal() {
-        childShards.values().forEach(ForeignShardModificationContext::ready);
+        childShards.values().stream().filter(ForeignShardModificationContext::isModified)
+                .forEach(ForeignShardModificationContext::ready);
+
         return context.ready();
     }