12345678910111213141516171819202122232425262728293031323334353637383940
  1. import java.util.ArrayList;
  2. /**
  3. * @author leon on 4/19/18.
  4. * this class is an abstraction of how Animals are stored and retrieved
  5. */
  6. class AnimalWarehouse<AnimalType extends Animal> {
  7. private volatile ArrayList<AnimalType> list = new ArrayList<>();
  8. public void add(AnimalType animal) {
  9. list.add(animal);
  10. }
  11. public AnimalType getAnimalById(int id) {
  12. for(AnimalType animal : list) {
  13. if(animal.getId() == id) {
  14. return animal;
  15. }
  16. }
  17. return null;
  18. }
  19. public void removeAnimal(Animal animal) {
  20. list.remove(animal);
  21. }
  22. public void removeAnimalById(int id) {
  23. removeAnimal(getAnimalById(id));
  24. }
  25. public Integer getNumberOfAnimals() {
  26. return list.size();
  27. }
  28. public void clear() {
  29. list.clear();
  30. }
  31. }