diff options
Diffstat (limited to 'sigmod/CoinListItem.cpp')
| -rw-r--r-- | sigmod/CoinListItem.cpp | 62 |
1 files changed, 25 insertions, 37 deletions
diff --git a/sigmod/CoinListItem.cpp b/sigmod/CoinListItem.cpp index c015b6f9..642fb013 100644 --- a/sigmod/CoinListItem.cpp +++ b/sigmod/CoinListItem.cpp @@ -59,8 +59,8 @@ Sigmod::CoinListItem::CoinListItem(const QDomElement& xml, const CoinList* paren void Sigmod::CoinListItem::validate() { TEST_BEGIN(); - TEST(setObject, object); - TEST(setCost, cost); + TEST(object); + TEST(cost); TEST_END(); } @@ -81,41 +81,29 @@ QDomElement Sigmod::CoinListItem::save() const return xml; } -void Sigmod::CoinListItem::setType(const Type type) -{ - CHECK(type); -} - -void Sigmod::CoinListItem::setObject(const int object) -{ - if (((Item == m_type) && !sigmod()->itemById(object)) || ((Species == m_type) && !sigmod()->speciesById(object))) - emit(error(bounds("object", object))); - else - CHECK(object); -} - -void Sigmod::CoinListItem::setCost(const int cost) -{ - if (cost <= 0) - emit(error(bounds("cost", 1, INT_MAX, cost))); - else - CHECK(cost); -} - -Sigmod::CoinListItem::Type Sigmod::CoinListItem::type() const -{ - return m_type; -} - -int Sigmod::CoinListItem::object() const -{ - return m_object; -} - -int Sigmod::CoinListItem::cost() const -{ - return m_cost; -} +SETTER(CoinListItem, Type, Type, type) +SETTER(CoinListItem, int, Object, object) +SETTER(CoinListItem, int, Cost, cost) + +GETTER(CoinListItem, Sigmod::CoinListItem::Type, type) +GETTER(CoinListItem, int, object) +GETTER(CoinListItem, int, cost) + +CHECK_DEFAULT(CoinListItem, Type, type) +CHECK_BEGIN(CoinListItem, int, object) + switch (m_type) + { + case Item: + IBOUNDS(object, sigmod(), type) + break; + case Species: + IBOUNDS(object, sigmod(), species) + break; + } +CHECK_END() +CHECK_BEGIN(CoinListItem, int, cost) + TBOUNDS(cost, 1, INT_MAX) +CHECK_END() Sigmod::CoinListItem& Sigmod::CoinListItem::operator=(const CoinListItem& rhs) { |
