*/
package org.opendaylight.controller.cluster.datastore.messages;
-import org.opendaylight.controller.cluster.datastore.ShardDataTreeCohort;
-import org.opendaylight.controller.cluster.datastore.modification.Modification;
+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;
/**
* Transaction ReadyTransaction message that is forwarded to the local Shard from the ShardTransaction.
* @author Thomas Pantelis
*/
public class ForwardedReadyTransaction {
- private final String transactionID;
- private final ShardDataTreeCohort cohort;
- private final Modification modification;
- private final boolean returnSerialized;
+ private final TransactionIdentifier transactionId;
+ private final ReadWriteShardDataTreeTransaction transaction;
private final boolean doImmediateCommit;
private final short txnClientVersion;
+ private @Nullable final SortedSet<String> participatingShardNames;
- public ForwardedReadyTransaction(String transactionID, short txnClientVersion,
- ShardDataTreeCohort cohort, Modification modification,
- boolean returnSerialized, boolean doImmediateCommit) {
- this.transactionID = transactionID;
- this.cohort = cohort;
- this.modification = modification;
- 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 ShardDataTreeCohort getCohort() {
- return cohort;
- }
-
- public Modification getModification() {
- return modification;
+ public TransactionIdentifier getTransactionId() {
+ return transactionId;
}
- public boolean isReturnSerialized() {
- return returnSerialized;
+ public ReadWriteShardDataTreeTransaction getTransaction() {
+ return transaction;
}
public short getTxnClientVersion() {
public boolean isDoImmediateCommit() {
return doImmediateCommit;
}
+
+ public Optional<SortedSet<String>> getParticipatingShardNames() {
+ return Optional.ofNullable(participatingShardNames);
+ }
+
+ @Override
+ public String toString() {
+ return "ForwardedReadyTransaction [transactionId=" + transactionId + ", transaction=" + transaction
+ + ", doImmediateCommit=" + doImmediateCommit + ", participatingShardNames=" + participatingShardNames
+ + ", txnClientVersion=" + txnClientVersion + "]";
+ }
}