Use Empty instead of Void in cohorts
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / databroker / actors / dds / AbstractTransactionCommitCohort.java
index 51b17007738d5ee0ace135ef9b4d509c229870e2..77de1e45d82bd0e8f797b4152830cf8aa9cda949 100644 (file)
@@ -7,9 +7,14 @@
  */
 package org.opendaylight.controller.cluster.databroker.actors.dds;
 
+import static java.util.Objects.requireNonNull;
+
+import com.google.common.base.MoreObjects;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
-import org.opendaylight.controller.sal.core.spi.data.DOMStoreThreePhaseCommitCohort;
+import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
+import org.opendaylight.mdsal.dom.spi.store.DOMStoreThreePhaseCommitCohort;
+import org.opendaylight.yangtools.yang.common.Empty;
 
 /**
  * Base class for internal {@link DOMStoreThreePhaseCommitCohort} implementation. It contains utility constants for
@@ -19,6 +24,22 @@ import org.opendaylight.controller.sal.core.spi.data.DOMStoreThreePhaseCommitCoh
  */
 abstract class AbstractTransactionCommitCohort implements DOMStoreThreePhaseCommitCohort {
     static final ListenableFuture<Boolean> TRUE_FUTURE = Futures.immediateFuture(Boolean.TRUE);
-    static final ListenableFuture<Void> VOID_FUTURE = Futures.immediateFuture(null);
+    static final ListenableFuture<Empty> EMPTY_FUTURE = Futures.immediateFuture(Empty.value());
+
+    private final AbstractClientHistory parent;
+    private final TransactionIdentifier txId;
+
+    AbstractTransactionCommitCohort(final AbstractClientHistory parent, final TransactionIdentifier txId) {
+        this.parent = requireNonNull(parent);
+        this.txId = requireNonNull(txId);
+    }
+
+    final void complete() {
+        parent.onTransactionComplete(txId);
+    }
 
+    @Override
+    public final String toString() {
+        return MoreObjects.toStringHelper(this).add("txId", txId).toString();
+    }
 }