/*This code was generated using the UMPLE modeling language! Date of generation: 2008/08/20 12:40:13*/ /*This class drives: RegularLeg, RegularFlightSchedule*/ package airlineMajorExample; import java.util.*; import java.sql.Date; import airlineMajorExample.json.*; public class RegularFlight { //Class datatypes private String flightNo; //Class association variables private FlightTracker flightTracker; private List regularLegs; private List regularFlightSchedules; //Registry of our system. AirlineMajorExampleRegistry registry = AirlineMajorExampleRegistry.getInstance(); //Constructor public RegularFlight(String aFlightNo, FlightTracker aFlightTracker) { flightNo = aFlightNo; flightTracker = aFlightTracker; flightTracker.addRegularFlight(this); regularLegs = new ArrayList(); registry.add(regularLegs); regularFlightSchedules = new ArrayList(); registry.add(regularFlightSchedules); } public boolean setFlightNo(String aFlightNo) { if (flightTracker.getRegularFlight(aFlightNo) == null) { flightNo = aFlightNo; return true; } //Another posibility would be to throw an exception //describing which of the 1 ends already has this element ID. return false; } public String getFlightNo() { return flightNo; } public FlightTracker getFlightTracker() { return flightTracker; } public List getRegularLegs() { return regularLegs; } public List getRegularFlightSchedules() { return regularFlightSchedules; } public RegularLeg addRegularLeg(Airport aDestination, Airport aOrigin) { RegularLeg newRegularLeg; newRegularLeg = new RegularLeg(this, aDestination, aOrigin); if (!regularLegs.contains(newRegularLeg)) { registry.add(newRegularLeg); regularLegs.add(newRegularLeg); } return newRegularLeg; } public RegularLeg addRegularLeg(RegularLeg aRegularLeg) { if (!regularLegs.contains(aRegularLeg)) regularLegs.add(aRegularLeg); return aRegularLeg; } public RegularFlightSchedule addRegularFlightSchedule(String aEffectiveDate, String aDiscontinuedDate, AirplaneType aAirplaneType) { RegularFlightSchedule newRegularFlightSchedule; newRegularFlightSchedule = new RegularFlightSchedule(aEffectiveDate, aDiscontinuedDate, this, aAirplaneType); if (!regularFlightSchedules.contains(newRegularFlightSchedule)) { registry.add(newRegularFlightSchedule); regularFlightSchedules.add(newRegularFlightSchedule); } return newRegularFlightSchedule; } public RegularFlightSchedule addRegularFlightSchedule( RegularFlightSchedule aRegularFlightSchedule) { if (!regularFlightSchedules.contains(aRegularFlightSchedule)) regularFlightSchedules.add(aRegularFlightSchedule); return aRegularFlightSchedule; } /* This class does not drive FlightTracker and therefore sets the association unidirectionally.*/ public void setFlightTracker(FlightTracker aFlightTracker) { flightTracker = aFlightTracker; } public void delete() { //Delete all many ends first. for (RegularLeg aRegularLeg : regularLegs) { aRegularLeg.delete(); } regularLegs.clear(); //Delete all many ends first. for (RegularFlightSchedule aRegularFlightSchedule : regularFlightSchedules) { aRegularFlightSchedule.delete(); } regularFlightSchedules.clear(); //Delete all 1 ends. flightTracker.deleteRegularFlight(this); } public void deleteRegularLeg(RegularLeg aRegularLeg) { if (regularLegs.contains(aRegularLeg)) { regularLegs.remove(aRegularLeg); //registry.removeObj(registry.getKey(aRegularLeg)); } else //Throw an UmpleException .. to be implemented. { } } public void deleteRegularFlightSchedule( RegularFlightSchedule aRegularFlightSchedule) { if (regularFlightSchedules.contains(aRegularFlightSchedule)) { regularFlightSchedules.remove(aRegularFlightSchedule); //registry.removeObj(registry.getKey(aRegularFlightSchedule)); } else //Throw an UmpleException .. to be implemented. { } } public boolean areManyEndsNull() { if (regularLegs.size() == 0 && regularFlightSchedules.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("flightNo", getFlightNo()); return obj; } }