import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
import org.opendaylight.yangtools.concepts.Builder;
import org.opendaylight.yangtools.concepts.Identifiable;
/**
* A reusable {@link Builder} for creating {@link ModifyTransactionRequest} message instances. Its internal state is
import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
import org.opendaylight.yangtools.concepts.Builder;
import org.opendaylight.yangtools.concepts.Identifiable;
/**
* A reusable {@link Builder} for creating {@link ModifyTransactionRequest} message instances. Its internal state is
public final class ModifyTransactionRequestBuilder implements Builder<ModifyTransactionRequest>,
Identifiable<TransactionIdentifier> {
private final List<TransactionModification> modifications = new ArrayList<>(1);
private final TransactionIdentifier identifier;
private final ActorRef replyTo;
public final class ModifyTransactionRequestBuilder implements Builder<ModifyTransactionRequest>,
Identifiable<TransactionIdentifier> {
private final List<TransactionModification> modifications = new ArrayList<>(1);
private final TransactionIdentifier identifier;
private final ActorRef replyTo;
- this.identifier = Preconditions.checkNotNull(identifier);
- this.replyTo = Preconditions.checkNotNull(replyTo);
+ this.identifier = requireNonNull(identifier);
+ this.replyTo = requireNonNull(replyTo);
- private void checkFinished() {
- Preconditions.checkState(protocol != null, "Batch has already been finished");
+ private void checkNotFinished() {
+ checkState(protocol == null, "Batch has already been finished");
- public void setSequence(final long sequence) {
- checkFinished();
- Preconditions.checkState(modifications.isEmpty(), "Sequence must be set first");
- this.sequence = sequence;
+ public void addModification(final TransactionModification modification) {
+ checkNotFinished();
+ modifications.add(requireNonNull(modification));
- public void addModification(final TransactionModification modification) {
- checkFinished();
- modifications.add(Preconditions.checkNotNull(modification));
+ public void setSequence(final long sequence) {
+ checkState(!haveSequence, "Sequence has already been set");
+ this.sequence = sequence;
+ haveSequence = true;
// Transaction is being aborted, no need to transmit operations
modifications.clear();
protocol = PersistenceProtocol.ABORT;
}
public void setCommit(final boolean coordinated) {
// Transaction is being aborted, no need to transmit operations
modifications.clear();
protocol = PersistenceProtocol.ABORT;
}
public void setCommit(final boolean coordinated) {
- final ModifyTransactionRequest ret = new ModifyTransactionRequest(identifier, sequence, 0, replyTo,
- modifications, protocol);
+ checkState(haveSequence, "Request sequence has not been set");
+
+ final ModifyTransactionRequest ret = new ModifyTransactionRequest(identifier, sequence, replyTo, modifications,
+ protocol);