X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FAbstractTransactionContext.java;h=bc8efa6c5ae2b9d87dd94cac8e7386a4a6a1d06b;hb=55a9b9f42a14c56060f74b38f84d444c0fbfecc4;hp=df478b063015c44eb2c96d304da2705d42bf785e;hpb=0791cdd2ca719270a1b0c114bf863ba29d571ac0;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractTransactionContext.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractTransactionContext.java index df478b0630..bc8efa6c5a 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractTransactionContext.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractTransactionContext.java @@ -7,31 +7,62 @@ */ package org.opendaylight.controller.cluster.datastore; -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; abstract class AbstractTransactionContext implements TransactionContext { - private static final Logger LOG = LoggerFactory.getLogger(AbstractTransactionContext.class); - + private final TransactionIdentifier transactionIdentifier; private long modificationCount = 0; + private boolean handOffComplete; + private final short transactionVersion; - private final TransactionIdentifier identifier; + protected AbstractTransactionContext(TransactionIdentifier transactionIdentifier) { + this(transactionIdentifier, DataStoreVersions.CURRENT_VERSION); + } - protected AbstractTransactionContext(TransactionIdentifier identifier) { - this.identifier = identifier; + protected AbstractTransactionContext(TransactionIdentifier transactionIdentifier, short transactionVersion) { + // FIXME: requireNonNull()? + this.transactionIdentifier = transactionIdentifier; + this.transactionVersion = transactionVersion; } - protected final TransactionIdentifier getIdentifier() { - return identifier; + /** + * Get the transaction identifier associated with this context. + * + * @return Transaction identifier. + */ + // FIXME: does this imply Identifiable? + protected final @NonNull TransactionIdentifier getIdentifier() { + return transactionIdentifier; } - protected void incrementModificationCount(){ + protected final void incrementModificationCount() { modificationCount++; } - protected void logModificationCount(){ - LOG.debug("Total modifications on Tx {} = [ {} ]", identifier, modificationCount); + protected final void logModificationCount() { + LOG.debug("Total modifications on Tx {} = [ {} ]", getIdentifier(), modificationCount); + } + + @Override + public final void operationHandOffComplete() { + handOffComplete = true; + } + + protected boolean isOperationHandOffComplete() { + return handOffComplete; + } + + @Override + public boolean usesOperationLimiting() { + return false; + } + + @Override + public short getTransactionVersion() { + return transactionVersion; } -} \ No newline at end of file +}