Move byte-based serialization method
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / AbstractTransactionContext.java
index 97a0205ff2b7bc1a94bfe88c23e26a642b2a0866..bc8efa6c5ae2b9d87dd94cac8e7386a4a6a1d06b 100644 (file)
@@ -7,8 +7,8 @@
  */
 package org.opendaylight.controller.cluster.datastore;
 
-import javax.annotation.Nonnull;
-import org.opendaylight.controller.cluster.datastore.identifiers.TransactionIdentifier;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -17,9 +17,16 @@ abstract class AbstractTransactionContext implements TransactionContext {
     private final TransactionIdentifier transactionIdentifier;
     private long modificationCount = 0;
     private boolean handOffComplete;
+    private final short transactionVersion;
 
     protected AbstractTransactionContext(TransactionIdentifier transactionIdentifier) {
+        this(transactionIdentifier, DataStoreVersions.CURRENT_VERSION);
+    }
+
+    protected AbstractTransactionContext(TransactionIdentifier transactionIdentifier, short transactionVersion) {
+        // FIXME: requireNonNull()?
         this.transactionIdentifier = transactionIdentifier;
+        this.transactionVersion = transactionVersion;
     }
 
     /**
@@ -27,7 +34,8 @@ abstract class AbstractTransactionContext implements TransactionContext {
      *
      * @return Transaction identifier.
      */
-    @Nonnull protected final TransactionIdentifier getIdentifier() {
+    // FIXME: does this imply Identifiable?
+    protected final @NonNull TransactionIdentifier getIdentifier() {
         return transactionIdentifier;
     }
 
@@ -44,7 +52,7 @@ abstract class AbstractTransactionContext implements TransactionContext {
         handOffComplete = true;
     }
 
-    protected boolean isOperationHandOffComplete(){
+    protected boolean isOperationHandOffComplete() {
         return handOffComplete;
     }
 
@@ -52,4 +60,9 @@ abstract class AbstractTransactionContext implements TransactionContext {
     public boolean usesOperationLimiting() {
         return false;
     }
+
+    @Override
+    public short getTransactionVersion() {
+        return transactionVersion;
+    }
 }