17 name_ = std::move(value.
value());
29 transactionIds_.push_back(std::move(value));
34 transactionIds_ = std::move(value);
43 if (position >= transactionIds_.size()) {
44 transactionIds_.push_back(std::move(value));
47 transactionIds_.insert(transactionIds_.begin() +
static_cast<std::vector<std::string>::difference_type
>(position), std::move(value));
52 transactionIds_.erase(std::remove(transactionIds_.begin(), transactionIds_.end(), normalized), transactionIds_.end());
60 return index < transactionIds_.size();
65 const auto it = std::find(transactionIds_.begin(), transactionIds_.end(), normalized);
66 if (it == transactionIds_.end()) {
69 const auto current =
static_cast<std::size_t
>(std::distance(transactionIds_.begin(), it));
70 const auto item = *it;
71 transactionIds_.erase(it);
72 if (newPosition >= transactionIds_.size()) {
73 transactionIds_.push_back(item);
76 if (current < newPosition && newPosition > 0) {
79 transactionIds_.insert(transactionIds_.begin() +
static_cast<std::vector<std::string>::difference_type
>(newPosition), item);
87 transactionIds_.clear();
91 return transactionIds_.size();
95 return transactionIds_.empty();
Domain model for statements.
const std::string & value() const noexcept
const std::string & updatedAt() const noexcept
void addTransaction(std::string value)
Adds a normalized transaction id when it is not already present.
std::size_t transactionCount() const noexcept
Returns the number of linked transactions.
bool containsTransaction(const std::string &value) const
Checks whether a transaction id exists.
void removeTransaction(const std::string &value)
Removes a transaction id from the statement.
void moveTransaction(const std::string &value, std::size_t newPosition)
Moves a transaction id to a new position.
const std::string & name() const noexcept
const std::string & createdAt() const noexcept
void clearTransactions()
Clears all linked transactions.
void setTransactionIds(std::vector< std::string > value)
Replaces the transaction id list with normalized values.
void setCreatedAt(std::string value)
const std::string & id() const noexcept
void insertTransaction(std::string value, std::size_t position)
Inserts a transaction id at a requested position.
const std::vector< std::string > & transactionIds() const noexcept
bool empty() const noexcept
Checks whether the statement is empty.
std::size_t indexOfTransaction(const std::string &value) const
Returns the index of a transaction id.
void setId(std::string value)
void setUpdatedAt(std::string value)
bool hasTransactionAt(std::size_t index) const noexcept
Checks whether a transaction exists at a given index.
void rename(EntityName value)
Renames the statement with normalized entity text.
void normalizeIds(std::vector< std::string > &values)
Normalizes and deduplicates transaction identifiers.
bool containsTransactionId(const std::vector< std::string > &transactionIds, const std::string &value)
Checks whether a statement already contains a transaction id.
std::size_t indexOfTransactionId(const std::vector< std::string > &transactionIds, const std::string &value)
Returns the index of a transaction id.
std::string normalizeId(std::string value)
Normalizes a transaction identifier.