diff options
Diffstat (limited to 'src/Cage.cc')
| -rw-r--r-- | src/Cage.cc | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/Cage.cc b/src/Cage.cc new file mode 100644 index 0000000..d6a3aa4 --- /dev/null +++ b/src/Cage.cc @@ -0,0 +1,48 @@ +#include <utility> + +#include "Cage.hh" + +namespace zoo { +void Cage::setCageNumber(int _cageNumber) { + if (validateCageNumber(_cageNumber)) { + this->cageNumber = _cageNumber; + } +} + +void Cage::setCageLocation(std::string _cageLocation) { + this->cageLocation = std::move(_cageLocation); +} + +void Cage::setCageSqFt(int _cageSqFt) { + if (Cage::validateSqFt(_cageSqFt)) { + this->cageSqFt = _cageSqFt; + } +} + +int Cage::getCageNumber() const { return this->cageNumber; } + +std::string Cage::getCageLocation() { return this->cageLocation; } + +int Cage::getCageSqFt() const { return this->cageSqFt; } + +bool Cage::validateSqFt(int _cageSqFt) { + if (_cageSqFt < 2 || _cageSqFt > 100000) { + return false; + } else { + return true; + } +} + +bool Cage::validateCageNumber(int _cageNumber) { + if (this->zoo != nullptr) { + for (std::size_t i = 0; + i < static_cast<std::size_t>(this->zoo->getNumCages()); ++i) { + if (*zoo->getCage(i) == _cageNumber) { + return true; + } + } + } + + return false; +} +} // namespace zoo |