/*This code was generated using the UMPLE modeling language! Date of generation: 2008/08/20 12:40:13*/ /*This class drives: RegularLegSchedule*/ package airlineMajorExample; import java.util.*; import java.sql.Time; import airlineMajorExample.json.*; public class RegularFlightSchedule { //Class datatypes private String effectiveDate; private String discontinuedDate; //Class association variables private RegularFlight regularFlight; private List regularLegSchedules; private AirplaneType airplaneType; //Registry of our system. AirlineMajorExampleRegistry registry = AirlineMajorExampleRegistry.getInstance(); //Constructor public RegularFlightSchedule(String aEffectiveDate, String aDiscontinuedDate, RegularFlight aRegularFlight, AirplaneType aAirplaneType) { effectiveDate = aEffectiveDate; discontinuedDate = aDiscontinuedDate; regularFlight = aRegularFlight; regularFlight.addRegularFlightSchedule(this); regularLegSchedules = new ArrayList(); registry.add(regularLegSchedules); airplaneType = aAirplaneType; airplaneType.addRegularFlightSchedule(this); } public boolean setEffectiveDate(String aEffectiveDate) { effectiveDate = aEffectiveDate; return true; } public boolean setDiscontinuedDate(String aDiscontinuedDate) { discontinuedDate = aDiscontinuedDate; return true; } public String getEffectiveDate() { return effectiveDate; } public String getDiscontinuedDate() { return discontinuedDate; } public RegularFlight getRegularFlight() { return regularFlight; } public List getRegularLegSchedules() { return regularLegSchedules; } public AirplaneType getAirplaneType() { return airplaneType; } public RegularLegSchedule addRegularLegSchedule(String aDepTime, String aArrTime, int aMidnightCrossings, RegularLeg aRegularLeg, Frequency aRegsched) { RegularLegSchedule newRegularLegSchedule; newRegularLegSchedule = new RegularLegSchedule(aDepTime, aArrTime, aMidnightCrossings, aRegularLeg, this, aRegsched); if (!regularLegSchedules.contains(newRegularLegSchedule)) { registry.add(newRegularLegSchedule); regularLegSchedules.add(newRegularLegSchedule); } return newRegularLegSchedule; } public RegularLegSchedule addRegularLegSchedule( RegularLegSchedule aRegularLegSchedule) { if (!regularLegSchedules.contains(aRegularLegSchedule)) regularLegSchedules.add(aRegularLegSchedule); return aRegularLegSchedule; } /* This class does not drive RegularFlight and therefore sets the association unidirectionally.*/ public void setRegularFlight(RegularFlight aRegularFlight) { regularFlight = aRegularFlight; } /* This class does not drive AirplaneType and therefore sets the association unidirectionally.*/ public void setAirplaneType(AirplaneType aAirplaneType) { airplaneType = aAirplaneType; } public void delete() { //Delete all many ends first. for (RegularLegSchedule aRegularLegSchedule : regularLegSchedules) { aRegularLegSchedule.delete(); } regularLegSchedules.clear(); //Delete all 1 ends. regularFlight.deleteRegularFlightSchedule(this); airplaneType.deleteRegularFlightSchedule(this); } public void deleteRegularLegSchedule(RegularLegSchedule aRegularLegSchedule) { if (regularLegSchedules.contains(aRegularLegSchedule)) { regularLegSchedules.remove(aRegularLegSchedule); //registry.removeObj(registry.getKey(aRegularLegSchedule)); } else //Throw an UmpleException .. to be implemented. { } } public boolean areManyEndsNull() { if (regularLegSchedules.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("effectiveDate", getEffectiveDate()); obj.put("discontinuedDate", getDiscontinuedDate()); return obj; } }