/*This code was generated using the UMPLE modeling language! Date of generation: 2008/07/30 11:46:04*/ /*This class drives: VoiceMailMessage, TelephoneNumber*/ package telesystem.core; import java.util.*; import telesystem.*; import telesystem.json.*; public class VoiceMailBox { //Class datatypes //Class association variables private List voiceMailMessages; private List telephoneNumbers; //Registry of our system. TelesystemRegistry registry = TelesystemRegistry.getInstance(); //Constructor public VoiceMailBox() { voiceMailMessages = new ArrayList(); registry.add(voiceMailMessages); telephoneNumbers = new ArrayList(); registry.add(telephoneNumbers); } public List getVoiceMailMessages() { return voiceMailMessages; } public List getTelephoneNumbers() { return telephoneNumbers; } public VoiceMailMessage addVoiceMailMessage(String aDigitizedSound, VoiceMailBox aVoiceMailBox) { VoiceMailMessage newVoiceMailMessage; newVoiceMailMessage = new VoiceMailMessage(aDigitizedSound, this); if (!voiceMailMessages.contains(newVoiceMailMessage)) { registry.add(newVoiceMailMessage); voiceMailMessages.add(newVoiceMailMessage); } return newVoiceMailMessage; } public VoiceMailMessage addVoiceMailMessage(VoiceMailMessage aVoiceMailMessage) { if (!voiceMailMessages.contains(aVoiceMailMessage)) voiceMailMessages.add(aVoiceMailMessage); return aVoiceMailMessage; } public TelephoneNumber addTelephoneNumber(String aDigits, VoiceMailBox aVoiceMailBox) { TelephoneNumber newTelephoneNumber; newTelephoneNumber = new TelephoneNumber(aDigits, this); if (!telephoneNumbers.contains(newTelephoneNumber)) { registry.add(newTelephoneNumber); telephoneNumbers.add(newTelephoneNumber); } return newTelephoneNumber; } public TelephoneNumber addTelephoneNumber(TelephoneNumber aTelephoneNumber) { if (!telephoneNumbers.contains(aTelephoneNumber)) telephoneNumbers.add(aTelephoneNumber); return aTelephoneNumber; } public void delete() { //Delete all many ends first. for (VoiceMailMessage aVoiceMailMessage : voiceMailMessages) { aVoiceMailMessage.delete(); } voiceMailMessages.clear(); //Delete all many ends first. for (TelephoneNumber aTelephoneNumber : telephoneNumbers) { aTelephoneNumber.delete(); } telephoneNumbers.clear(); } public void deleteVoiceMailMessage(VoiceMailMessage aVoiceMailMessage) { if (voiceMailMessages.contains(aVoiceMailMessage)) { voiceMailMessages.remove(aVoiceMailMessage); //registry.removeObj(registry.getKey(aVoiceMailMessage)); } else //Throw an UmpleException .. to be implemented. { } } public void deleteTelephoneNumber(TelephoneNumber aTelephoneNumber) { if (telephoneNumbers.contains(aTelephoneNumber)) { telephoneNumbers.remove(aTelephoneNumber); //registry.removeObj(registry.getKey(aTelephoneNumber)); } else //Throw an UmpleException .. to be implemented. { } } public boolean areManyEndsNull() { if (voiceMailMessages.size() == 0 && telephoneNumbers.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)); return obj; } }