Make ShardCoordinationTasks public
[mdsal.git] / dom / mdsal-dom-inmemory-datastore / src / main / java / org / opendaylight / mdsal / dom / store / inmemory / ShardSubmitCoordinationTask.java
index b46c9fcf0b0712e551a8ddb2e4bb403777a5a2d3..c7b0ee6adc01ae91c3222d6a25f708615f220242 100644 (file)
@@ -8,6 +8,8 @@
 
 package org.opendaylight.mdsal.dom.store.inmemory;
 
+import com.google.common.annotations.Beta;
+import com.google.common.base.Preconditions;
 import java.util.Collection;
 import java.util.concurrent.Callable;
 import org.opendaylight.mdsal.common.api.TransactionCommitFailedException;
@@ -16,7 +18,12 @@ import org.opendaylight.mdsal.dom.spi.store.DOMStoreThreePhaseCommitCohort;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-class ShardSubmitCoordinationTask implements Callable<Void> {
+/**
+ * Task that coordinates all phases of transaction submit from the provided {@link DOMStoreThreePhaseCommitCohort}'s.
+ * Each phase will only be started once all cohorts have finished the previous phase.
+ */
+@Beta
+public class ShardSubmitCoordinationTask implements Callable<Void> {
 
     private static final Logger LOG = LoggerFactory.getLogger(ShardSubmitCoordinationTask.class);
 
@@ -26,9 +33,9 @@ class ShardSubmitCoordinationTask implements Callable<Void> {
     private final ShardCommitCoordinationTask commitCoordinationTask;
 
 
-    ShardSubmitCoordinationTask(final DOMDataTreeIdentifier rootShardPrefix,
+    public ShardSubmitCoordinationTask(final DOMDataTreeIdentifier rootShardPrefix,
                                        final Collection<DOMStoreThreePhaseCommitCohort> cohorts) {
-        this.rootShardPrefix = rootShardPrefix;
+        this.rootShardPrefix = Preconditions.checkNotNull(rootShardPrefix);
 
         canCommitCoordinationTask = new ShardCanCommitCoordinationTask(rootShardPrefix, cohorts);
         preCommitCoordinationTask = new ShardPreCommitCoordinationTask(rootShardPrefix, cohorts);