*/
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.DataStoreVersions;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification;
/**
* Message notifying the shard leader to apply modifications which have been
*/
public final class ReadyLocalTransaction {
private final DataTreeModification modification;
- private final TransactionIdentifier transactionID;
+ private final TransactionIdentifier transactionId;
private final boolean doCommitOnReady;
+ private final @Nullable SortedSet<String> participatingShardNames;
// The version of the remote system used only when needing to convert to BatchedModifications.
private short remoteVersion = DataStoreVersions.CURRENT_VERSION;
- public ReadyLocalTransaction(final TransactionIdentifier transactionID, final DataTreeModification modification,
- final boolean doCommitOnReady) {
- this.transactionID = Preconditions.checkNotNull(transactionID);
- this.modification = Preconditions.checkNotNull(modification);
+ public ReadyLocalTransaction(final TransactionIdentifier transactionId, final DataTreeModification modification,
+ final boolean doCommitOnReady, final Optional<SortedSet<String>> participatingShardNames) {
+ this.transactionId = requireNonNull(transactionId);
+ this.modification = requireNonNull(modification);
this.doCommitOnReady = doCommitOnReady;
+ this.participatingShardNames = requireNonNull(participatingShardNames).orElse(null);
}
- public TransactionIdentifier getTransactionID() {
- return transactionID;
+ public TransactionIdentifier getTransactionId() {
+ return transactionId;
}
public DataTreeModification getModification() {
return remoteVersion;
}
- public void setRemoteVersion(short remoteVersion) {
+ public void setRemoteVersion(final short remoteVersion) {
this.remoteVersion = remoteVersion;
}
+
+ public Optional<SortedSet<String>> getParticipatingShardNames() {
+ return Optional.ofNullable(participatingShardNames);
+ }
}