/*This code was generated using the UMPLE modeling language! Date of generation: 2008/07/29 14:51:25*/ /*This class drives: Topic*/ package University.core; import java.util.*; import University.*; import University.json.*; public class MutualExclusionReason { //Class datatypes //Class association variables private List overlappingMaterials; private Course course; private Course isMutualyExclusiveWith; //Registry of our system. UniversityRegistry registry = UniversityRegistry.getInstance(); //Constructor public MutualExclusionReason(Course aCourse, Course aIsMutualyExclusiveWith) { overlappingMaterials = new ArrayList(); registry.add(overlappingMaterials); course = aCourse; course.addMutualyExclusiveFirstEnd(this); isMutualyExclusiveWith = aIsMutualyExclusiveWith; isMutualyExclusiveWith.addMutualyExclusiveFirstEnd(this); } public List getOverlappingMaterials() { return overlappingMaterials; } public Course getCourse() { return course; } public Course getIsMutualyExclusiveWith() { return isMutualyExclusiveWith; } public Topic addOverlappingMaterial() { Topic newTopic; newTopic = new Topic(); if (!overlappingMaterials.contains(newTopic)) { registry.add(newTopic); overlappingMaterials.add(newTopic); } return newTopic; } public Topic addOverlappingMaterial(Topic aOverlappingMaterial) { if (!overlappingMaterials.contains(aOverlappingMaterial)) overlappingMaterials.add(aOverlappingMaterial); return aOverlappingMaterial; } /* This class does not drive Course and therefore sets the association unidirectionally.*/ public void setCourse(Course aCourse) { course = aCourse; } /* This class does not drive Course and therefore sets the association unidirectionally.*/ public void setIsMutualyExclusiveWith(Course aIsMutualyExclusiveWith) { isMutualyExclusiveWith = aIsMutualyExclusiveWith; } public void delete() { //Delete all many ends first. for (Topic aTopic : overlappingMaterials) { aTopic.delete(); } overlappingMaterials.clear(); //Delete all 1 ends. course.deleteMutualyExclusiveFirstEnd(this); isMutualyExclusiveWith.deleteMutualyExclusiveFirstEnd(this); } public void deleteOverlappingMaterial(Topic aTopic) { if (overlappingMaterials.contains(aTopic)) { overlappingMaterials.remove(aTopic); //registry.removeObj(registry.getKey(aTopic)); } else //Throw an UmpleException .. to be implemented. { } } public boolean areManyEndsNull() { if (overlappingMaterials.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; } }