Expose completion future from WriteOperations
[mdsal.git] / binding / mdsal-binding-util / src / main / java / org / opendaylight / mdsal / binding / util / TypedWriteTransactionImpl.java
index 60fa3b98ae5155314b5ab5968c2c45ae7b93e73c..b872606308dc9bc0fc6c6f1b6aafd6565f068c92 100644 (file)
@@ -7,6 +7,7 @@
  */
 package org.opendaylight.mdsal.binding.util;
 
+import com.google.common.util.concurrent.FluentFuture;
 import org.opendaylight.mdsal.binding.api.WriteTransaction;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
@@ -19,8 +20,8 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
  */
 class TypedWriteTransactionImpl<D extends Datastore, X extends WriteTransaction> extends TypedTransaction<D, X>
         implements TypedWriteTransaction<D> {
-    TypedWriteTransactionImpl(final Class<D> datastoreType, final X realTx) {
-        super(datastoreType, realTx);
+    TypedWriteTransactionImpl(final D datastore, final X realTx) {
+        super(datastore, realTx);
     }
 
     @Override
@@ -30,9 +31,9 @@ class TypedWriteTransactionImpl<D extends Datastore, X extends WriteTransaction>
     }
 
     @Override
-    public final <T extends DataObject> void put(final InstanceIdentifier<T> path, final T data,
-            final boolean createMissingParents) {
-        delegate().put(getDatastoreType(), path, data, createMissingParents);
+    public final <T extends DataObject> void mergeParentStructurePut(final InstanceIdentifier<T> path,
+            final T data) {
+        delegate().mergeParentStructurePut(getDatastoreType(), path, data);
         postOperation();
     }
 
@@ -43,9 +44,9 @@ class TypedWriteTransactionImpl<D extends Datastore, X extends WriteTransaction>
     }
 
     @Override
-    public final <T extends DataObject> void merge(final InstanceIdentifier<T> path, final T data,
-            final boolean createMissingParents) {
-        delegate().merge(getDatastoreType(), path, data, createMissingParents);
+    public final <T extends DataObject> void mergeParentStructureMerge(final InstanceIdentifier<T> path,
+            final T data) {
+        delegate().mergeParentStructureMerge(getDatastoreType(), path, data);
         postOperation();
     }
 
@@ -55,6 +56,11 @@ class TypedWriteTransactionImpl<D extends Datastore, X extends WriteTransaction>
         postOperation();
     }
 
+    @Override
+    public final FluentFuture<?> completionFuture() {
+        return delegate().completionFuture();
+    }
+
     void postOperation() {
         // Defaults to no-op
     }