X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fidentifiers%2FTransactionIdentifier.java;h=6023e555288b58e18f6eab4e215615ffdd7254f0;hp=ba2e27c69f96f55192030b5e622e660197d19847;hb=74fc38503a3565bed6218f65ab8f4425c61460a3;hpb=bd943b7ee79b6324c561f8fbe2bea4a4293d5dd1 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/identifiers/TransactionIdentifier.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/identifiers/TransactionIdentifier.java index ba2e27c69f..6023e55528 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/identifiers/TransactionIdentifier.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/identifiers/TransactionIdentifier.java @@ -11,17 +11,37 @@ package org.opendaylight.controller.cluster.datastore.identifiers; import com.google.common.base.Preconditions; public class TransactionIdentifier { + protected static final String TX_SEPARATOR = "-txn-"; + private final String memberName; private final long counter; - + private final long timestamp; + private String stringRepresentation; public TransactionIdentifier(String memberName, long counter) { this.memberName = Preconditions.checkNotNull(memberName, "memberName should not be null"); this.counter = counter; + this.timestamp = System.currentTimeMillis(); + } + + public String getChainId() { + return ""; + } + + protected String getMemberName() { + return memberName; } - public static Builder builder(){ - return new Builder(); + protected long getCounter() { + return counter; + } + + protected long getTimestamp() { + return timestamp; + } + + public static TransactionIdentifier create(String memberName, long counter) { + return new TransactionIdentifier(memberName, counter); } @Override @@ -38,6 +58,11 @@ public class TransactionIdentifier { if (counter != that.counter) { return false; } + + if (timestamp != that.timestamp) { + return false; + } + if (!memberName.equals(that.memberName)) { return false; } @@ -49,32 +74,19 @@ public class TransactionIdentifier { public int hashCode() { int result = memberName.hashCode(); result = 31 * result + (int) (counter ^ (counter >>> 32)); + result = 31 * result + (int)(timestamp ^ (timestamp >>> 32)); return result; } - @Override public String toString() { - final StringBuilder sb = - new StringBuilder(); - sb.append(memberName).append("-txn-").append(counter); - return sb.toString(); - } - - public static class Builder { - private String memberName; - private long counter; - public TransactionIdentifier build(){ - return new TransactionIdentifier(memberName, counter); - } - - public Builder memberName(String memberName){ - this.memberName = memberName; - return this; + @Override + public String toString() { + if(stringRepresentation == null) { + stringRepresentation = new StringBuilder(memberName.length() + TX_SEPARATOR.length() + 21). + append(memberName).append(TX_SEPARATOR).append(counter).append('-').append(timestamp).toString(); } - public Builder counter(long counter){ - this.counter = counter; - return this; - } + return stringRepresentation; } + }