summaryrefslogtreecommitdiff
path: root/src/ZooAnimal.cc
blob: 6bfa1d21cbbf3f32c2a29e04f5b346df96f37c79 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <utility>

#include "ZooAnimal.hh"

namespace zoo {
ZooAnimal::~ZooAnimal() = default;

void ZooAnimal::setIDNum(int _idNumber) { this->idNumber = _idNumber; }

void ZooAnimal::setCageNum(int _cageNumber) {
  if (validateCageNumber(_cageNumber)) {
    this->cageNumber = _cageNumber;
  }
}

void ZooAnimal::setDateAcq(int _dateAcquired) {
  this->dateAcquired = _dateAcquired;
}

void ZooAnimal::setSpecies(std::string _species) {
  this->species = std::move(_species);
}

int ZooAnimal::getIDNum() const { return this->idNumber; }

int ZooAnimal::getCageNum() const { return this->cageNumber; }

int ZooAnimal::getDateAcq() const { return this->dateAcquired; }

std::string ZooAnimal::getSpecies() { return this->species; }

bool ZooAnimal::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