Expose completion future from WriteOperations
[mdsal.git] / dom / mdsal-dom-spi / src / main / java / org / opendaylight / mdsal / dom / spi / ForwardingDOMDataReadWriteTransaction.java
index 2167e046d8d46e09969ecfc451d8592d88df7f17..7fcd5125e6465660d1e999d13d0b3b80ab48dd75 100644 (file)
@@ -7,33 +7,33 @@
  */
 package org.opendaylight.mdsal.dom.spi;
 
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.mdsal.common.api.ReadFailedException;
-import org.opendaylight.mdsal.common.api.TransactionCommitFailedException;
-
-import com.google.common.base.Optional;
 import com.google.common.collect.ForwardingObject;
-import com.google.common.util.concurrent.CheckedFuture;
-import javax.annotation.Nonnull;
-import org.opendaylight.mdsal.dom.api.DOMDataReadWriteTransaction;
+import com.google.common.util.concurrent.FluentFuture;
+import java.util.Optional;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.mdsal.common.api.CommitInfo;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeReadWriteTransaction;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 
 /**
- * Utility {@link DOMDataReadWriteTransaction} implementation which forwards all interface
+ * Utility {@link DOMDataTreeReadWriteTransaction} implementation which forwards all interface
  * method invocation to a delegate instance.
  */
-public abstract class ForwardingDOMDataReadWriteTransaction extends ForwardingObject implements DOMDataReadWriteTransaction {
+public abstract class ForwardingDOMDataReadWriteTransaction extends ForwardingObject
+        implements DOMDataTreeReadWriteTransaction {
     @Override
-    protected abstract @Nonnull DOMDataReadWriteTransaction delegate();
+    protected abstract @NonNull DOMDataTreeReadWriteTransaction delegate();
 
     @Override
-    public CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> read(final LogicalDatastoreType store, final YangInstanceIdentifier path) {
+    public FluentFuture<Optional<NormalizedNode>> read(final LogicalDatastoreType store,
+            final YangInstanceIdentifier path) {
         return delegate().read(store, path);
     }
 
     @Override
-    public CheckedFuture<Boolean, ReadFailedException> exists(final LogicalDatastoreType store, final YangInstanceIdentifier path) {
+    public FluentFuture<Boolean> exists(final LogicalDatastoreType store, final YangInstanceIdentifier path) {
         return delegate().exists(store, path);
     }
 
@@ -43,12 +43,12 @@ public abstract class ForwardingDOMDataReadWriteTransaction extends ForwardingOb
     }
 
     @Override
-    public void put(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    public void put(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data) {
         delegate().put(store, path, data);
     }
 
     @Override
-    public void merge(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    public void merge(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data) {
         delegate().merge(store, path, data);
     }
 
@@ -63,8 +63,12 @@ public abstract class ForwardingDOMDataReadWriteTransaction extends ForwardingOb
     }
 
     @Override
-    public CheckedFuture<Void, TransactionCommitFailedException> submit() {
-        return delegate().submit();
+    public FluentFuture<? extends CommitInfo> commit() {
+        return delegate().commit();
     }
 
+    @Override
+    public FluentFuture<?> completionFuture() {
+        return delegate().completionFuture();
+    }
 }