/*This code was generated using the UMPLE modeling language! Date of generation: 2008/07/31 08:48:57*/ /*This class drives: Floor, Bank*/ package Elevator.core; import java.util.*; import Elevator.*; import Elevator.json.*; public class Building { //Class datatypes private String name; //Class association variables private List floors; private List banks; //Registry of our system. ElevatorRegistry registry = ElevatorRegistry.getInstance(); //Constructor public Building(String aName, ArrayList floors, ArrayList banks) { name = aName; this.floors = floors; this.banks = banks; } public boolean setName(String aName) { name = aName; return true; } public String getName() { return name; } public List getFloors() { return floors; } public List getBanks() { return banks; } public Floor addFloor(String aId, String aDoorToOpen, Building aBuilding, ArrayList bankOnFloors) { Floor newFloor; newFloor = new Floor(aId, aDoorToOpen, this, bankOnFloors); if (!floors.contains(newFloor)) { registry.add(newFloor); floors.add(newFloor); } return newFloor; } public Floor addFloor(Floor aFloor) { if (!floors.contains(aFloor)) floors.add(aFloor); return aFloor; } public Bank addBank(String aId, Building aBuilding, ArrayList elevators) { Bank newBank; newBank = new Bank(aId, this, elevators); if (!banks.contains(newBank)) { registry.add(newBank); banks.add(newBank); } return newBank; } public Bank addBank(Bank aBank) { if (!banks.contains(aBank)) banks.add(aBank); return aBank; } public void delete() { //Delete all many ends first. for (Floor aFloor : floors) { aFloor.delete(); } floors.clear(); //Delete all many ends first. for (Bank aBank : banks) { aBank.delete(); } banks.clear(); } public void deleteFloor(Floor aFloor) { if (floors.contains(aFloor)) { floors.remove(aFloor); //registry.removeObj(registry.getKey(aFloor)); } else //Throw an UmpleException .. to be implemented. { } } public void deleteBank(Bank aBank) { if (banks.contains(aBank)) { banks.remove(aBank); //registry.removeObj(registry.getKey(aBank)); } else //Throw an UmpleException .. to be implemented. { } } public boolean areManyEndsNull() { if (floors.size() == 0 && banks.size() == 0) { return true; } else return false; } /*********************************** * Returns the attribute list along with the * class ID in JSON format. ***********************************/ public JSONObject getAttributes() throws JSONException { JSONObject obj = new JSONObject(); obj.put("CLASS_ID", registry.getKey(this)); obj.put("name", getName()); return obj; } }