*/
package org.opendaylight.controller.cluster.datastore.messages;
-import com.google.common.base.Preconditions;
+import static java.util.Objects.requireNonNull;
+
+import java.util.Optional;
+import java.util.SortedSet;
+import org.eclipse.jdt.annotation.Nullable;
+import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
import org.opendaylight.controller.cluster.datastore.ReadWriteShardDataTreeTransaction;
/**
* @author Thomas Pantelis
*/
public class ForwardedReadyTransaction {
- private final String transactionID;
+ private final TransactionIdentifier transactionId;
private final ReadWriteShardDataTreeTransaction transaction;
- private final boolean returnSerialized;
private final boolean doImmediateCommit;
private final short txnClientVersion;
+ private @Nullable final SortedSet<String> participatingShardNames;
- public ForwardedReadyTransaction(String transactionID, short txnClientVersion,
- ReadWriteShardDataTreeTransaction transaction, boolean returnSerialized,
- boolean doImmediateCommit) {
- this.transactionID = Preconditions.checkNotNull(transactionID);
- this.transaction = Preconditions.checkNotNull(transaction);
- this.returnSerialized = returnSerialized;
+ public ForwardedReadyTransaction(TransactionIdentifier transactionId, short txnClientVersion,
+ ReadWriteShardDataTreeTransaction transaction, boolean doImmediateCommit,
+ Optional<SortedSet<String>> participatingShardNames) {
+ this.transactionId = requireNonNull(transactionId);
+ this.transaction = requireNonNull(transaction);
this.txnClientVersion = txnClientVersion;
this.doImmediateCommit = doImmediateCommit;
+ this.participatingShardNames = requireNonNull(participatingShardNames).orElse(null);
}
- public String getTransactionID() {
- return transactionID;
+ public TransactionIdentifier getTransactionId() {
+ return transactionId;
}
public ReadWriteShardDataTreeTransaction getTransaction() {
return transaction;
}
- public boolean isReturnSerialized() {
- return returnSerialized;
- }
-
public short getTxnClientVersion() {
return txnClientVersion;
}
return doImmediateCommit;
}
+ public Optional<SortedSet<String>> getParticipatingShardNames() {
+ return Optional.ofNullable(participatingShardNames);
+ }
+
@Override
public String toString() {
- return "ForwardedReadyTransaction [transactionID=" + transactionID + ", doImmediateCommit=" + doImmediateCommit
+ return "ForwardedReadyTransaction [transactionId=" + transactionId + ", transaction=" + transaction
+ + ", doImmediateCommit=" + doImmediateCommit + ", participatingShardNames=" + participatingShardNames
+ ", txnClientVersion=" + txnClientVersion + "]";
}
}