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%2Fidentifiers%2FChainedTransactionIdentifier.java;h=78f68f6204fdb9a946fa37ac47b37729b528a469;hb=d207a2f677545357095f2e5f145a5ecc8d3a60dd;hp=1aec854785f05be6fe5a07a4aafac6fc1e855f99;hpb=4b9316643d0001c8d36f6bc1ffab79f946f968e8;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/identifiers/ChainedTransactionIdentifier.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/identifiers/ChainedTransactionIdentifier.java index 1aec854785..78f68f6204 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/identifiers/ChainedTransactionIdentifier.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/identifiers/ChainedTransactionIdentifier.java @@ -8,20 +8,38 @@ package org.opendaylight.controller.cluster.datastore.identifiers; import com.google.common.base.Preconditions; +import com.google.common.base.Supplier; +import com.google.common.base.Suppliers; /** * A TransactionIdentifier which is tied to a backend transaction chain. */ public class ChainedTransactionIdentifier extends TransactionIdentifier { private final String chainId; + private Supplier stringRepresentation; - public ChainedTransactionIdentifier(final String memberName, final long counter, final String chainId) { - super(memberName, counter); - this.chainId = Preconditions.checkNotNull(chainId); + public ChainedTransactionIdentifier(final TransactionChainIdentifier chainId, final long txnCounter) { + super(chainId.getMemberName(), txnCounter); + Preconditions.checkNotNull(chainId); + this.chainId = chainId.toString(); + stringRepresentation = Suppliers.memoize(new Supplier() { + @Override + public String get() { + return new StringBuilder(chainId.toString().length() + TX_SEPARATOR.length() + 10). + append(chainId).append(TX_SEPARATOR).append(getCounter()).toString(); + } + }); } + @Override public String getChainId() { return chainId; } + + @Override + public String toString() { + return stringRepresentation.get(); + } + }