addOperation method

void addOperation(
  1. TransactionOperation op
)

Implementation

void addOperation(TransactionOperation op) {
  if (_operations.contains(op)) {
    throw StateError("Operation already in transaction: $op");
  }

  if (_committed) {
    throw StateError("Transaction already committed:\n$this");
  }

  if (_aborted) {
    throw StateError("Transaction already aborted:\n$this");
  }

  if (_commitCalled) {
    throw StateError("Transaction is committing:\n$this");
  }

  _initTime ??= DateTime.now();

  if (_operations.isEmpty) {
    _addToAPIRequest();
  }

  _operations.add(op);
  op.id = _operations.length;
}