*/
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 javax.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;
private final DataTreeModification modification;
private final TransactionIdentifier transactionId;
private final boolean doCommitOnReady;
+ @Nullable
+ private final 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);
+ final boolean doCommitOnReady, Optional<SortedSet<String>> participatingShardNames) {
+ this.transactionId = requireNonNull(transactionId);
+ this.modification = requireNonNull(modification);
this.doCommitOnReady = doCommitOnReady;
+ this.participatingShardNames = requireNonNull(participatingShardNames).orElse(null);
}
public TransactionIdentifier getTransactionId() {
public void setRemoteVersion(short remoteVersion) {
this.remoteVersion = remoteVersion;
}
+
+ public Optional<SortedSet<String>> getParticipatingShardNames() {
+ return Optional.ofNullable(participatingShardNames);
+ }
}