Finished Create Link() establishment
This commit is contained in:
@@ -83,7 +83,6 @@ public class App extends Application
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
//testing out airport parser
|
||||
try {
|
||||
System.out.println(currentDataset.importAirport("res/Samples/Airports.txt"));
|
||||
|
||||
@@ -8,6 +8,7 @@ import java.sql.DriverManager;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.Statement;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
|
||||
public class Dataset {
|
||||
@@ -591,13 +592,13 @@ public class Dataset {
|
||||
" `Codeshare`, `Stops`, `Equipment`) VALUES ";
|
||||
int numOfRoutes = 0;
|
||||
for (int i = 0; i < routesToImport.size(); i ++){
|
||||
String routeIdentifier = routesToImport.get(i).getAirline() + routesToImport.get(i).departsFrom() + routesToImport.get(i).arrivesAt() +
|
||||
String routeIdentifier = routesToImport.get(i).getAirlineName() + routesToImport.get(i).departsFrom() + routesToImport.get(i).arrivesAt() +
|
||||
routesToImport.get(i).getCode() + routesToImport.get(i).getStops() + routesToImport.get(i).getEquipment();
|
||||
if (routeDictionary.containsKey(routeIdentifier)){
|
||||
numOfDuplicates ++;
|
||||
}else{
|
||||
//route variables
|
||||
String routeAirline = routesToImport.get(i).getAirline().replace("\"", "\"\"");
|
||||
String routeAirline = routesToImport.get(i).getAirlineName().replace("\"", "\"\"");
|
||||
String routeSource = routesToImport.get(i).departsFrom().replace("\"", "\"\"");
|
||||
String routeDestination = routesToImport.get(i).arrivesAt().replace("\"", "\"\"");
|
||||
String routeCode = routesToImport.get(i).getCode().replace("\"", "\"\"");
|
||||
@@ -733,7 +734,37 @@ public class Dataset {
|
||||
*/
|
||||
|
||||
public void createDataLinks(){
|
||||
|
||||
//this may be seperated into more sepearate function in the future for time optimisation
|
||||
//create Airline country link
|
||||
for (Airline airline: airlines){
|
||||
airline.setCountry(countryDictionary.get(airline.getCountryName()));
|
||||
}
|
||||
//create Airport City and Country Link
|
||||
HashMap<String, Airport> airportsByIATA = new HashMap<String, Airport>(); //this is used later for connecting the routes
|
||||
HashMap<String, Airport> airportsByICAO = new HashMap<String, Airport>(); //this is used later for connecting the routes
|
||||
for (Airport airport: airports){
|
||||
airportsByIATA.put(airport.getIATA_FFA(), airport);
|
||||
airportsByICAO.put(airport.getICAO(), airport);
|
||||
airport.setCountry(countryDictionary.get(airport.getCountryName()));
|
||||
//TODO Add City in country (This is extra work).
|
||||
airport.setCity(cityDictionary.get(airport.getCityName()));
|
||||
airport.getCity().addAirport(airport);
|
||||
}
|
||||
//set Airport variables for route
|
||||
for (Route route: routes){
|
||||
if (route.departsFrom().length() > 3){
|
||||
route.setSourceAirport(airportsByICAO.get(route.departsFrom()));
|
||||
}else{
|
||||
route.setSourceAirport(airportsByIATA.get(route.departsFrom()));
|
||||
}
|
||||
if (route.arrivesAt().length() > 3){
|
||||
route.setDestinationAirport(airportsByICAO.get(route.departsFrom()));
|
||||
}else{
|
||||
route.setDestinationAirport(airportsByIATA.get(route.departsFrom()));
|
||||
}
|
||||
route.setAirline(airlineDictionary.get(route.getAirlineName()));
|
||||
}
|
||||
System.out.println("Links Made");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -929,7 +960,7 @@ public class Dataset {
|
||||
}
|
||||
|
||||
public void addRoute(Route routeToAdd) throws DataException{
|
||||
if (routeToAdd.getAirline().length() != 2 && routeToAdd.getAirline().length() != 3){
|
||||
if (routeToAdd.getAirlineName().length() != 2 && routeToAdd.getAirlineName().length() != 3){
|
||||
throw new DataException("Airline ICAO code must be 2 or 3 letters.");
|
||||
}
|
||||
if (routeToAdd.departsFrom().length() != 3 && routeToAdd.departsFrom().length() != 4){
|
||||
@@ -953,7 +984,7 @@ public class Dataset {
|
||||
c = DriverManager.getConnection("jdbc:sqlite:res/userdb.db");
|
||||
//add the airline
|
||||
stmt = c.createStatement();
|
||||
String airline = routeToAdd.getAirline().replace("\"", "\"\"");
|
||||
String airline = routeToAdd.getAirlineName().replace("\"", "\"\"");
|
||||
String sourceAir = routeToAdd.departsFrom().replace("\"", "\"\"");
|
||||
String destAir = routeToAdd.arrivesAt().replace("\"", "\"\"");
|
||||
String equipment = routeToAdd.getEquipment().replace("\"", "\"\"");
|
||||
@@ -972,7 +1003,7 @@ public class Dataset {
|
||||
routeToAdd.setID(routeID);
|
||||
routes.add(routeToAdd);
|
||||
//routeAirline + routeSourceAirport + routeArrvAirport + routeCodeShare + routeStops + routeEquip
|
||||
String routeKey = routeToAdd.getAirline() + routeToAdd.departsFrom() + routeToAdd.arrivesAt() + routeToAdd.getCode() + routeToAdd.getStops() + routeToAdd.getEquipment();
|
||||
String routeKey = routeToAdd.getAirlineName() + routeToAdd.departsFrom() + routeToAdd.arrivesAt() + routeToAdd.getCode() + routeToAdd.getStops() + routeToAdd.getEquipment();
|
||||
routeDictionary.put(routeKey, routeToAdd);
|
||||
} catch ( Exception e ) {
|
||||
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
|
||||
|
||||
@@ -8,19 +8,20 @@ import seng202.group9.Controller.DataException;
|
||||
*
|
||||
*/
|
||||
public class Route {
|
||||
private int ID;//this ID is the route id not the airline or airports.
|
||||
private int ID;//this ID is the route id not the airlineName or airports.
|
||||
private int stops;
|
||||
private String codeShare;
|
||||
private String equipment;
|
||||
private String airline;
|
||||
private String airlineName;
|
||||
private String departureAirport;
|
||||
private String arrivalAirport;
|
||||
private Airport sourceAirport;
|
||||
private Airport destinationAirport;
|
||||
private Airline airline = null;
|
||||
|
||||
/**
|
||||
* Constructor for pulling from database
|
||||
* @param airline
|
||||
* @param airlineName
|
||||
* @param ID
|
||||
* @param departureAirport
|
||||
* @param arrivalAirport
|
||||
@@ -28,34 +29,34 @@ public class Route {
|
||||
* @param stops
|
||||
* @param equipment
|
||||
*/
|
||||
public Route(int ID, String airline, String departureAirport, String arrivalAirport,
|
||||
String codeShare, int stops, String equipment){
|
||||
public Route(int ID, String airlineName, String departureAirport, String arrivalAirport,
|
||||
String codeShare, int stops, String equipment){
|
||||
this.ID = ID;
|
||||
this.stops = stops;
|
||||
this.codeShare = codeShare;
|
||||
this.equipment = equipment;
|
||||
this.airline = airline;
|
||||
this.airlineName = airlineName;
|
||||
this.departureAirport = departureAirport;
|
||||
this.arrivalAirport = arrivalAirport;
|
||||
}
|
||||
/**
|
||||
* Constructor for adding
|
||||
* @param airline
|
||||
* @param airlineName
|
||||
* @param departureAirport
|
||||
* @param arrivalAirport
|
||||
* @param codeShare
|
||||
* @param stops
|
||||
* @param equipment
|
||||
*/
|
||||
public Route(String airline, String departureAirport, String arrivalAirport,
|
||||
String codeShare, int stops, String equipment){
|
||||
public Route(String airlineName, String departureAirport, String arrivalAirport,
|
||||
String codeShare, int stops, String equipment){
|
||||
//remember to set the id manually later after adding it to the database and grab
|
||||
//the new id value of the route.
|
||||
this.ID = -1;
|
||||
this.stops = stops;
|
||||
this.codeShare = codeShare;
|
||||
this.equipment = equipment;
|
||||
this.airline = airline;
|
||||
this.airlineName = airlineName;
|
||||
this.departureAirport = departureAirport;
|
||||
this.arrivalAirport = arrivalAirport;
|
||||
}
|
||||
@@ -102,11 +103,11 @@ public class Route {
|
||||
this.equipment = equipment;
|
||||
}
|
||||
/**
|
||||
* sets airline that flies this route
|
||||
* @param airline
|
||||
* sets airlineName that flies this route
|
||||
* @param airlineName
|
||||
*/
|
||||
public void setAirline(String airline) {
|
||||
this.airline = airline;
|
||||
public void setAirlineName(String airlineName) {
|
||||
this.airlineName = airlineName;
|
||||
}
|
||||
/**
|
||||
* returns the id of this route
|
||||
@@ -141,11 +142,11 @@ public class Route {
|
||||
return equipment;
|
||||
}
|
||||
/**
|
||||
* returns the airline that flies this route
|
||||
* returns the airlineName that flies this route
|
||||
* @return
|
||||
*/
|
||||
public String getAirline(){
|
||||
return airline;
|
||||
public String getAirlineName(){
|
||||
return airlineName;
|
||||
}
|
||||
/**
|
||||
* returns the source airport of this route
|
||||
@@ -194,12 +195,27 @@ public class Route {
|
||||
this.sourceAirport = sourceAirport;
|
||||
}
|
||||
|
||||
/**
|
||||
* gets Airline clas that is bound to the Airline that flights this route.
|
||||
* @return
|
||||
*/
|
||||
public Airline getAirline() {
|
||||
return airline;
|
||||
}
|
||||
|
||||
/**
|
||||
* sets Airline clas that is bound to the Airline that flights this route.
|
||||
* @return
|
||||
*/
|
||||
public void setAirline(Airline airline) {
|
||||
this.airline = airline;
|
||||
}
|
||||
/**
|
||||
* Checks is passed route is a duplicate of the current one if so it throws an DataException
|
||||
*/
|
||||
public void hasDuplicate(Route route) throws DataException{
|
||||
//routeAirline + routeSourceAirport + routeArrvAirport + routeCodeShare + routeStops + routeEquip
|
||||
if (route.getAirline().equals(this.airline) && route.departsFrom().equals(this.departureAirport)
|
||||
if (route.getAirlineName().equals(this.airlineName) && route.departsFrom().equals(this.departureAirport)
|
||||
&& route.arrivesAt().equals(this.arrivalAirport) && route.getCode().equals(this.codeShare)
|
||||
&& route.getStops() == this.stops && route.getEquipment().equals(this.equipment)){
|
||||
throw new DataException("This Route already exists.");
|
||||
@@ -208,7 +224,7 @@ public class Route {
|
||||
@Override
|
||||
public String toString(){
|
||||
|
||||
return airline+" flies from "+departureAirport+" to "+arrivalAirport+" on a "+equipment +" stopping "+stops+" amount of times";
|
||||
return airlineName +" flies from "+departureAirport+" to "+arrivalAirport+" on a "+equipment +" stopping "+stops+" amount of times";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ public class RouteTest extends TestCase {
|
||||
//////////////
|
||||
//test getters
|
||||
//////////////
|
||||
assertEquals(route.getAirline(), "BA");
|
||||
assertEquals(route.getAirlineName(), "BA");
|
||||
assertEquals(route.departsFrom(), "SIN");
|
||||
assertEquals(route.arrivesAt(), "LHR");
|
||||
assertEquals(route.getCode(), "");
|
||||
@@ -35,14 +35,14 @@ public class RouteTest extends TestCase {
|
||||
///////////////
|
||||
//test setters
|
||||
///////////////
|
||||
route.setAirline("BAH");
|
||||
route.setAirlineName("BAH");
|
||||
route.setArrivalAirport("LEFT-HAND-RULE");
|
||||
route.setDepartureAirport("SING-SONG");
|
||||
route.setCode("Y");
|
||||
route.setStops(5);
|
||||
route.setEquipment("747 840");
|
||||
|
||||
assertEquals(route.getAirline(), "BAH");
|
||||
assertEquals(route.getAirlineName(), "BAH");
|
||||
assertEquals(route.departsFrom(), "SING-SONG");
|
||||
assertEquals(route.arrivesAt(), "LEFT-HAND-RULE");
|
||||
assertEquals(route.getCode(), "Y");
|
||||
|
||||
Reference in New Issue
Block a user