import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
-import org.opendaylight.controller.cluster.datastore.DataStoreVersions;
+import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
/**
* Base class for a 3PC message.
public abstract class AbstractThreePhaseCommitMessage extends VersionedExternalizableMessage {
private static final long serialVersionUID = 1L;
- private String transactionID;
+ private TransactionIdentifier transactionID;
protected AbstractThreePhaseCommitMessage() {
}
- protected AbstractThreePhaseCommitMessage(final String transactionID, final short version) {
+ protected AbstractThreePhaseCommitMessage(final TransactionIdentifier transactionID, final short version) {
super(version);
this.transactionID = Preconditions.checkNotNull(transactionID);
}
- protected abstract Object newLegacySerializedInstance();
-
- public String getTransactionID() {
+ public TransactionIdentifier getTransactionID() {
return transactionID;
}
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
super.readExternal(in);
- transactionID = in.readUTF();
+ transactionID = TransactionIdentifier.readFrom(in);
}
@Override
public void writeExternal(ObjectOutput out) throws IOException {
super.writeExternal(out);
- out.writeUTF(transactionID);
- }
-
- @Override
- public Object toSerializable() {
- return getVersion() >= DataStoreVersions.BORON_VERSION ? this : newLegacySerializedInstance();
+ transactionID.writeTo(out);
}
@Override
public String toString() {
- return getClass().getSimpleName() + " [transactionID=" + transactionID + ", version=" + getVersion()
- + "]";
+ return getClass().getSimpleName() + " [transactionID=" + transactionID + ", version=" + getVersion() + "]";
}
}