summaryrefslogtreecommitdiff
path: root/src/Cage.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/Cage.cc')
-rw-r--r--src/Cage.cc48
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