/*This code was generated using the UMPLE modeling language! Date of generation: 2008/07/29 14:29:19*/ /*This class drives: SpecificFlight*/ package Airline.flights; import java.sql.Time; import java.util.*; import java.sql.Date; import Airline.*; import Airline.humanResources.*; import Airline.json.*; public class RegularFlight { //Class datatypes private Time time; private int flightNumber; //Class association variables private Airline airline; private List specificFlights; //Registry of our system. AirlineRegistry registry = AirlineRegistry.getInstance(); //Constructor public RegularFlight(Time aTime, int aFlightNumber, Airline aAirline) { time = aTime; flightNumber = aFlightNumber; airline = aAirline; airline.addRegularFlight(this); specificFlights = new ArrayList(); registry.add(specificFlights); } public boolean setTime(Time aTime) { time = aTime; return true; } public boolean setFlightNumber(int aFlightNumber) { if (airline.getRegularFlight(aFlightNumber) == null) { flightNumber = aFlightNumber; return true; } //Another posibility would be to throw an exception //describing which of the 1 ends already has this element ID. return false; } public Time getTime() { return time; } public int getFlightNumber() { return flightNumber; } public Airline getAirline() { return airline; } public List getSpecificFlights() { return specificFlights; } /*SpecificFlight is unique with respect to RegularFlight*/ public SpecificFlight getSpecificFlight(Date aDate) { for (SpecificFlight aSpecificFlight : getSpecificFlights()) { if (aSpecificFlight.getDate().equals(aDate)) return aSpecificFlight; } //If the value was found, it would have been returned. return null; } public SpecificFlight addSpecificFlight(Date aDate) { SpecificFlight newSpecificFlight; newSpecificFlight = new SpecificFlight(aDate, this); if (!specificFlights.contains(newSpecificFlight)) { registry.add(newSpecificFlight); specificFlights.add(newSpecificFlight); } return newSpecificFlight; } public SpecificFlight addSpecificFlight(SpecificFlight aSpecificFlight) { if (!specificFlights.contains(aSpecificFlight)) specificFlights.add(aSpecificFlight); return aSpecificFlight; } /* This class does not drive Airline and therefore sets the association unidirectionally.*/ public void setAirline(Airline aAirline) { airline = aAirline; } public void delete() { //Delete all many ends first. for (SpecificFlight aSpecificFlight : specificFlights) { aSpecificFlight.delete(); } specificFlights.clear(); //Delete all 1 ends. airline.deleteRegularFlight(this); } public void deleteSpecificFlight(SpecificFlight aSpecificFlight) { if (specificFlights.contains(aSpecificFlight)) { specificFlights.remove(aSpecificFlight); //registry.removeObj(registry.getKey(aSpecificFlight)); } else //Throw an UmpleException .. to be implemented. { } } public boolean areManyEndsNull() { if (specificFlights.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("time", getTime()); obj.put("flightNumber", getFlightNumber()); return obj; } }