Refactor write tracking implementation
[mdsal.git] / binding / mdsal-binding-util / src / main / java / org / opendaylight / mdsal / binding / util / WriteTrackingTypedWriteTransactionImpl.java
index b6c322340da876509707bd7be780ee7f92de9099..d1ce3fee777eaa42a00339fcfbc6165ab52f44a3 100644 (file)
@@ -8,55 +8,28 @@
 package org.opendaylight.mdsal.binding.util;
 
 import org.opendaylight.mdsal.binding.api.WriteTransaction;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
 /**
  * Write typed transaction which keeps track of writes.
  */
-class WriteTrackingTypedWriteTransactionImpl<D extends Datastore> extends TypedWriteTransactionImpl<D>
-        implements WriteTrackingTransaction {
+final class WriteTrackingTypedWriteTransactionImpl<D extends Datastore>
+        extends TypedWriteTransactionImpl<D, WriteTransaction> implements WriteTrackingTransaction {
 
     // This is volatile to ensure we get the latest value; transactions aren't supposed to be used in multiple threads,
     // but the cost here is tiny (one read penalty at the end of a transaction) so we play it safe
     private volatile boolean written;
 
-    WriteTrackingTypedWriteTransactionImpl(Class<D> datastoreType, WriteTransaction realTx) {
+    WriteTrackingTypedWriteTransactionImpl(final Class<D> datastoreType, final WriteTransaction realTx) {
         super(datastoreType, realTx);
     }
 
     @Override
-    public <T extends DataObject> void put(InstanceIdentifier<T> path, T data) {
-        super.put(path, data);
-        written = true;
-    }
-
-    @Override
-    public <T extends DataObject> void put(InstanceIdentifier<T> path, T data, boolean createMissingParents) {
-        super.put(path, data, createMissingParents);
-        written = true;
-    }
-
-    @Override
-    public <T extends DataObject> void merge(InstanceIdentifier<T> path, T data) {
-        super.merge(path, data);
-        written = true;
-    }
-
-    @Override
-    public <T extends DataObject> void merge(InstanceIdentifier<T> path, T data, boolean createMissingParents) {
-        super.merge(path, data, createMissingParents);
-        written = true;
+    public boolean isWritten() {
+        return written;
     }
 
     @Override
-    public void delete(InstanceIdentifier<?> path) {
-        super.delete(path);
+    void postOperation() {
         written = true;
     }
-
-    @Override
-    public boolean isWritten() {
-        return written;
-    }
 }