/*This code was generated using the UMPLE modeling language! Date of generation: 2008/07/31 08:48:57*/ /*This class drives: Elevator, BankOnFloor*/ package Elevator.core; import java.util.*; import Elevator.*; import Elevator.json.*; public class Bank { //Class datatypes private String id; //Class association variables private Building building; private List elevators; private List bankOnFloors; //Registry of our system. ElevatorRegistry registry = ElevatorRegistry.getInstance(); //Constructor public Bank(String aId, Building aBuilding, ArrayList elevators) { id = aId; building = aBuilding; building.addBank(this); this.elevators = elevators; bankOnFloors = new ArrayList(); registry.add(bankOnFloors); } public boolean setId(String aId) { id = aId; return true; } public String getId() { return id; } public Building getBuilding() { return building; } public List getElevators() { return elevators; } public List getBankOnFloors() { return bankOnFloors; } public Elevator addElevator(String aId, String aDirection, String aMovingOrStopped, Bank aBank, Floor aFloor) { Elevator newElevator; newElevator = new Elevator(aId, aDirection, aMovingOrStopped, this, aFloor); if (!elevators.contains(newElevator)) { registry.add(newElevator); elevators.add(newElevator); } return newElevator; } public Elevator addElevator(Elevator aElevator) { if (!elevators.contains(aElevator)) elevators.add(aElevator); return aElevator; } public BankOnFloor addBankOnFloor(Boolean aUpCall, Boolean aDownCall, Bank aBank, Floor aFloor) { BankOnFloor newBankOnFloor; newBankOnFloor = new BankOnFloor(aUpCall, aDownCall, this, aFloor); if (!bankOnFloors.contains(newBankOnFloor)) { registry.add(newBankOnFloor); bankOnFloors.add(newBankOnFloor); } return newBankOnFloor; } public BankOnFloor addBankOnFloor(BankOnFloor aBankOnFloor) { if (!bankOnFloors.contains(aBankOnFloor)) bankOnFloors.add(aBankOnFloor); return aBankOnFloor; } /* This class does not drive Building and therefore sets the association unidirectionally.*/ public void setBuilding(Building aBuilding) { building = aBuilding; } public void delete() { //Delete all many ends first. for (Elevator aElevator : elevators) { aElevator.delete(); } elevators.clear(); //Delete all many ends first. for (BankOnFloor aBankOnFloor : bankOnFloors) { aBankOnFloor.delete(); } bankOnFloors.clear(); //Delete all 1 ends. building.delete(); } public void deleteElevator(Elevator aElevator) { if (elevators.contains(aElevator)) { elevators.remove(aElevator); //registry.removeObj(registry.getKey(aElevator)); } else //Throw an UmpleException .. to be implemented. { } } public void deleteBankOnFloor(BankOnFloor aBankOnFloor) { if (bankOnFloors.contains(aBankOnFloor)) { bankOnFloors.remove(aBankOnFloor); //registry.removeObj(registry.getKey(aBankOnFloor)); } else //Throw an UmpleException .. to be implemented. { } } public boolean areManyEndsNull() { if (elevators.size() == 0 && bankOnFloors.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("id", getId()); return obj; } }