X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fcds-access-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Faccess%2Fconcepts%2FTransactionIdentifier.java;h=202b5ce6dc53fbe2b3946727b419f3d928d27b1c;hb=refs%2Fchanges%2F59%2F47459%2F4;hp=7d058ef9ffbb328c32f618399f75778ad3d4aad4;hpb=a06a30a33507689464c736cb37c26445f232280e;p=controller.git diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/TransactionIdentifier.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/TransactionIdentifier.java index 7d058ef9ff..202b5ce6dc 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/TransactionIdentifier.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/TransactionIdentifier.java @@ -8,7 +8,6 @@ package org.opendaylight.controller.cluster.access.concepts; import com.google.common.annotations.Beta; -import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; import java.io.DataInput; import java.io.DataOutput; @@ -17,7 +16,8 @@ import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; import javax.annotation.Nonnull; -import org.opendaylight.yangtools.concepts.Identifier; +import org.opendaylight.yangtools.concepts.WritableIdentifier; +import org.opendaylight.yangtools.concepts.WritableObjects; /** * Globally-unique identifier of a transaction. @@ -25,12 +25,15 @@ import org.opendaylight.yangtools.concepts.Identifier; * @author Robert Varga */ @Beta -public final class TransactionIdentifier implements Identifier, WritableObject { +public final class TransactionIdentifier implements WritableIdentifier { private static final class Proxy implements Externalizable { private static final long serialVersionUID = 1L; private LocalHistoryIdentifier historyId; private long transactionId; + // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to + // be able to create instances via reflection. + @SuppressWarnings("checkstyle:RedundantModifier") public Proxy() { // For Externalizable } @@ -60,8 +63,9 @@ public final class TransactionIdentifier implements Identifier, WritableObject { private static final long serialVersionUID = 1L; private final LocalHistoryIdentifier historyId; private final long transactionId; + private transient String shortString; - public TransactionIdentifier(final @Nonnull LocalHistoryIdentifier historyId, final long transactionId) { + public TransactionIdentifier(@Nonnull final LocalHistoryIdentifier historyId, final long transactionId) { this.historyId = Preconditions.checkNotNull(historyId); this.transactionId = transactionId; } @@ -91,22 +95,32 @@ public final class TransactionIdentifier implements Identifier, WritableObject { } @Override - public boolean equals(final Object o) { - if (this == o) { + public boolean equals(final Object obj) { + if (this == obj) { return true; } - if (!(o instanceof TransactionIdentifier)) { + if (!(obj instanceof TransactionIdentifier)) { return false; } - final TransactionIdentifier other = (TransactionIdentifier) o; + final TransactionIdentifier other = (TransactionIdentifier) obj; return transactionId == other.transactionId && historyId.equals(other.historyId); } + public String toShortString() { + if (shortString == null) { + String histStr = historyId.getHistoryId() == 0 ? "" : "-chn-" + historyId.getHistoryId(); + shortString = historyId.getClientId().getFrontendId().getMemberName().getName() + "-" + + historyId.getClientId().getFrontendId().getClientType().getName() + "-fe-" + + historyId.getClientId().getGeneration() + histStr + "-txn-" + transactionId; + } + + return shortString; + } + @Override public String toString() { - return MoreObjects.toStringHelper(TransactionIdentifier.class).add("history", historyId) - .add("transaction", transactionId).toString(); + return toShortString(); } private Object writeReplace() {