Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ScotiaAirlines.models;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.Statement;
- import java.util.HashMap;
- import java.util.Map;
- public class Airline {
- //Getter
- public HashMap<String,Flight> getFlights()
- {
- return flights;
- }
- //Constructor
- public Airline()
- {
- flights = new HashMap<String, Flight>();
- }
- //A collection of flights
- private HashMap<String,Flight> flights;
- //Adds flight to the collection
- public void addFlight(Flight newFlight)
- {
- if(!flights.containsKey(newFlight.getFlightNumber()))
- {
- flights.put(newFlight.getFlightNumber(), newFlight);
- }
- }
- //Gets seat passed on the seat number entered
- public Seat getSeat(String flightNo, String seatNo)
- {
- //If it's a flight
- if (flights.containsKey(flightNo))
- {
- Flight currentFlight = flights.get(flightNo);
- //It contains seat details
- if(currentFlight.getSeats().containsKey(seatNo))
- {
- Seat tempSeat = currentFlight.getSeats().get(seatNo);
- return tempSeat;
- }
- //if not a temporary seat is created with the seat number
- else
- {
- Seat tempSeat = new Seat(seatNo);
- currentFlight.getSeats().put(seatNo, tempSeat);
- return tempSeat;
- }
- }
- else
- {
- return null;
- }
- }
- //loads flight from the database
- public void loadFlightsFromDB()
- {
- try
- {
- //Accesses the database
- Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
- Connection conn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\Euan\\Desktop\\workspace\\ScotiaAirlines\\Airline.accdb");
- Statement stmt = conn.createStatement();
- ResultSet rs = stmt.executeQuery("SELECT * FROM Flight");
- //builds flights from the details
- while(rs.next())
- {
- String Departure = rs.getString(1);
- String Arrival = rs.getString(2);
- int Rows = rs.getInt(3);
- int Columns = rs.getInt(4);
- String flightID = rs.getString(5);
- Flight newFlight = new Flight(Columns, Rows);
- newFlight.setFlightDetails(flightID, Departure, Arrival);
- flights.put(flightID, newFlight);
- }
- }
- //if that fails message is displayed
- catch(Exception ex)
- {
- String message = ex.getMessage();
- }
- }
- //Deletes all flights from the database
- public void clearFlightsFromDB()
- {
- try
- {
- //Accesses database
- Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
- Connection conn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\Euan\\Desktop\\workspace\\ScotiaAirlines\\Airline.accdb");
- Statement stmt = conn.createStatement();
- stmt.executeUpdate("DELETE * FROM Flight");
- }
- //if that fails message is displayed
- catch(Exception ex)
- {
- String message = ex.getMessage();
- }
- }
- //Saves current sessions flights to database
- public void saveFlightsToDB()
- {
- try
- {
- //accesses database
- Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
- Connection conn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\Euan\\Desktop\\workspace\\ScotiaAirlines\\Airline.accdb");
- Statement stmt = conn.createStatement();
- //saves each flight in the hasmap
- for(Map.Entry<String,Flight> f : flights.entrySet())
- {
- Flight flight = f.getValue();
- //statement to insert details into database
- stmt.executeUpdate("INSERT INTO Flight VALUES ('" + flight.getDeparture() + "','" +
- flight.getArrival() + "','" + flight.getRows() + "','" + flight.getColumns() + "','" + flight.getFlightNumber() +"')");
- }
- }
- catch(Exception ex)
- {
- String message = ex.getMessage();
- }
- }
- public void saveSeatsAndPassengersToDB()
- {
- try
- {
- //accesses db
- Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
- Connection conn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\Euan\\Desktop\\workspace\\ScotiaAirlines\\Airline.accdb");
- Statement stmt = conn.createStatement();
- for(Map.Entry<String, Flight> f : flights.entrySet())
- {
- Flight flight = f.getValue();
- for(Map.Entry<String, Seat> s : flight.getSeats().entrySet()) //goes through every seat
- {
- Seat seat = s.getValue();
- String passengerType = "";
- String passengerInfo = "";
- String passengerName = "";
- if(seat.getPassenger() != null)
- {
- //depending on passenger type decides what info is saved
- if(seat.getPassenger().getClass() == (new BusinessTraveller()).getClass())
- {
- passengerType = "B";
- passengerInfo = (((BusinessTraveller) seat.getPassenger()).getCompanyName());
- passengerName = seat.getPassenger().getPassengerName();
- }
- else if (seat.getPassenger().getClass() == (new IslandResident()).getClass())
- {
- passengerType = "B";
- passengerInfo = (((IslandResident) seat.getPassenger()).getIslandOfResidence());
- passengerName = seat.getPassenger().getPassengerName();
- }
- else
- {
- passengerType = "O";
- passengerInfo = String.valueOf((((OrdinaryPassenger) seat.getPassenger()).getCurrentPromotion()));
- passengerName = seat.getPassenger().getPassengerName();
- }
- }
- //Insert statements
- stmt.executeUpdate("INSERT INTO Seat VALUES ('" + seat.getSeatNumber() + "','" + seat.getCurrentStatus() + "','" +
- seat.getSeatTakings() + "','" + flight.getFlightNumber() +"')");
- stmt.executeUpdate("INSERT INTO Passenger VALUES ('" + passengerType + "','" + passengerInfo + "','" +
- passengerName + "','" + seat.getSeatNumber() + "','" + flight.getFlightNumber() +"')");
- }
- }
- }
- catch(Exception ex)
- {
- String message = ex.getMessage();
- }
- }
- //loads the seats from the db
- public void loadSeatsFromDB()
- {
- try
- {
- //accesses db
- Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
- Connection conn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\Euan\\Desktop\\workspace\\ScotiaAirlines\\Airline.accdb");
- Statement stmt = conn.createStatement();
- ResultSet rs = stmt.executeQuery("SELECT * FROM Seat");
- //gets the details
- while(rs.next())
- {
- String seatNumber = rs.getString(1);
- int currentStatus = rs.getInt(2);
- int seatTakings = rs.getInt(3);
- String FlightId = rs.getString(4);
- Seat loadedSeat = getSeat(FlightId,seatNumber);
- loadedSeat.setCurrentStatus(currentStatus);
- loadedSeat.setSeatTakings(seatTakings);
- }
- }
- catch(Exception ex)
- {
- String message = ex.getMessage();
- }
- }
- //Loads the passngers from the database
- public void loadPassengersFromDB()
- {
- try
- {
- //accesses database
- Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
- Connection conn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\Euan\\Desktop\\workspace\\ScotiaAirlines\\Airline.accdb");
- Statement stmt = conn.createStatement();
- ResultSet rs = stmt.executeQuery("SELECT * FROM Passenger");
- //gets the details
- while(rs.next())
- {
- String passengerInfo = rs.getString(2);
- String passengerType = rs.getString(1);
- String seatNo = rs.getString(4);
- String passengerName = rs.getString(3);
- String FlightId = rs.getString(5);
- Seat loadedSeat = getSeat(FlightId,seatNo);
- //fullSeatStatus is set
- int fullSeatStatus = loadedSeat.changeSeatStatus(loadedSeat.getCurrentStatus(), loadedSeat.getSeatTakings(), passengerName,
- passengerType.charAt(0), passengerInfo);
- Flight loadedFlight= flights.get(FlightId);
- ///Methods called and updated
- loadedFlight.updateSeat(fullSeatStatus);
- loadedFlight.calculateTotalFlightTakings();
- }
- }
- catch(Exception ex)
- {
- String message = ex.getMessage();
- }
- }
- //Clears seats and passengers from databse
- public void ClearSeatsAndPassengers()
- {
- try
- {
- //accesses database
- Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
- Connection conn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\Euan\\Desktop\\workspace\\ScotiaAirlines\\Airline.accdb");
- Statement stmt = conn.createStatement();
- //Statemeents to update db
- stmt.executeUpdate("DELETE * FROM Seat");
- stmt.executeUpdate("DELETE * FROM Passenger");
- }
- catch(Exception ex)
- {
- String message = ex.getMessage();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement