NormalizedNodeAggregator should also report empty
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / databroker / AbstractDOMTransactionFactory.java
index 2187c6e0f9298747957541b89ce5d654276e6808..91ca744f763173834a84003423a88fdde06e58f5 100644 (file)
@@ -9,20 +9,21 @@
 package org.opendaylight.controller.cluster.databroker;
 
 import com.google.common.base.Preconditions;
-import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FluentFuture;
 import java.util.Collection;
 import java.util.EnumMap;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
-import org.opendaylight.controller.md.sal.dom.api.DOMDataReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction;
-import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction;
-import org.opendaylight.controller.sal.core.spi.data.DOMStoreThreePhaseCommitCohort;
-import org.opendaylight.controller.sal.core.spi.data.DOMStoreTransactionFactory;
+import org.opendaylight.mdsal.common.api.CommitInfo;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeReadTransaction;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeReadWriteTransaction;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
+import org.opendaylight.mdsal.dom.spi.store.DOMStoreThreePhaseCommitCohort;
+import org.opendaylight.mdsal.dom.spi.store.DOMStoreTransactionFactory;
 
 public abstract class AbstractDOMTransactionFactory<T extends DOMStoreTransactionFactory> implements AutoCloseable {
+    @SuppressWarnings("rawtypes")
     private static final AtomicIntegerFieldUpdater<AbstractDOMTransactionFactory> UPDATER =
             AtomicIntegerFieldUpdater.newUpdater(AbstractDOMTransactionFactory.class, "closed");
     private final Map<LogicalDatastoreType, T> storeTxFactories;
@@ -34,26 +35,28 @@ public abstract class AbstractDOMTransactionFactory<T extends DOMStoreTransactio
 
     /**
      * Implementations must return unique identifier for each and every call of
-     * this method;
+     * this method.
      *
      * @return new Unique transaction identifier.
      */
     protected abstract Object newTransactionIdentifier();
 
     /**
+     * Submits a transaction asynchronously for commit.
      *
-     * @param transaction
-     * @param cohorts
-     * @return
+     * @param transaction the transaction to submit
+     * @param cohorts the associated cohorts
+     * @return a resulting Future
      */
-    protected abstract CheckedFuture<Void,TransactionCommitFailedException> submit(final DOMDataWriteTransaction transaction,
-                                                                                   final Collection<DOMStoreThreePhaseCommitCohort> cohorts);
+    protected abstract FluentFuture<? extends CommitInfo> commit(DOMDataTreeWriteTransaction transaction,
+            Collection<DOMStoreThreePhaseCommitCohort> cohorts);
 
     /**
+     * Creates a new read-only transaction.
      *
-     * @return
+     * @return the transaction instance
      */
-    public final DOMDataReadOnlyTransaction newReadOnlyTransaction() {
+    public final DOMDataTreeReadTransaction newReadOnlyTransaction() {
         checkNotClosed();
 
         return new DOMBrokerReadOnlyTransaction(newTransactionIdentifier(), storeTxFactories);
@@ -61,10 +64,11 @@ public abstract class AbstractDOMTransactionFactory<T extends DOMStoreTransactio
 
 
     /**
+     * Creates a new write-only transaction.
      *
-     * @return
+     * @return the transaction instance
      */
-    public final DOMDataWriteTransaction newWriteOnlyTransaction() {
+    public final DOMDataTreeWriteTransaction newWriteOnlyTransaction() {
         checkNotClosed();
 
         return new DOMBrokerWriteOnlyTransaction(newTransactionIdentifier(), storeTxFactories, this);
@@ -72,13 +76,14 @@ public abstract class AbstractDOMTransactionFactory<T extends DOMStoreTransactio
 
 
     /**
+     * Creates a new read-write transaction.
      *
-     * @return
+     * @return the transaction instance
      */
-    public final DOMDataReadWriteTransaction newReadWriteTransaction() {
+    public final DOMDataTreeReadWriteTransaction newReadWriteTransaction() {
         checkNotClosed();
 
-        return new DOMBrokerReadWriteTransaction<>(newTransactionIdentifier(), storeTxFactories, this);
+        return new DOMBrokerReadWriteTransaction(newTransactionIdentifier(), storeTxFactories, this);
     }
 
     /**
@@ -91,7 +96,7 @@ public abstract class AbstractDOMTransactionFactory<T extends DOMStoreTransactio
      *
      * @return Map of backing transaction factories.
      */
-    protected final Map<LogicalDatastoreType, T> getTxFactories() {
+    public final Map<LogicalDatastoreType, T> getTxFactories() {
         return storeTxFactories;
     }