Finished Create Link() establishment

main
YaFedImYaEatIm 9 years ago
parent 58c2c6a839
commit 693acf9b9c

Binary file not shown.

@ -83,7 +83,6 @@ public class App extends Application
e.printStackTrace(); e.printStackTrace();
} }
//testing out airport parser //testing out airport parser
try { try {
System.out.println(currentDataset.importAirport("res/Samples/Airports.txt")); System.out.println(currentDataset.importAirport("res/Samples/Airports.txt"));

@ -8,6 +8,7 @@ import java.sql.DriverManager;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.Statement; import java.sql.Statement;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
public class Dataset { public class Dataset {
@ -591,13 +592,13 @@ public class Dataset {
" `Codeshare`, `Stops`, `Equipment`) VALUES "; " `Codeshare`, `Stops`, `Equipment`) VALUES ";
int numOfRoutes = 0; int numOfRoutes = 0;
for (int i = 0; i < routesToImport.size(); i ++){ 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(); routesToImport.get(i).getCode() + routesToImport.get(i).getStops() + routesToImport.get(i).getEquipment();
if (routeDictionary.containsKey(routeIdentifier)){ if (routeDictionary.containsKey(routeIdentifier)){
numOfDuplicates ++; numOfDuplicates ++;
}else{ }else{
//route variables //route variables
String routeAirline = routesToImport.get(i).getAirline().replace("\"", "\"\""); String routeAirline = routesToImport.get(i).getAirlineName().replace("\"", "\"\"");
String routeSource = routesToImport.get(i).departsFrom().replace("\"", "\"\""); String routeSource = routesToImport.get(i).departsFrom().replace("\"", "\"\"");
String routeDestination = routesToImport.get(i).arrivesAt().replace("\"", "\"\""); String routeDestination = routesToImport.get(i).arrivesAt().replace("\"", "\"\"");
String routeCode = routesToImport.get(i).getCode().replace("\"", "\"\""); String routeCode = routesToImport.get(i).getCode().replace("\"", "\"\"");
@ -733,7 +734,37 @@ public class Dataset {
*/ */
public void createDataLinks(){ 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{ 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."); throw new DataException("Airline ICAO code must be 2 or 3 letters.");
} }
if (routeToAdd.departsFrom().length() != 3 && routeToAdd.departsFrom().length() != 4){ if (routeToAdd.departsFrom().length() != 3 && routeToAdd.departsFrom().length() != 4){
@ -953,7 +984,7 @@ public class Dataset {
c = DriverManager.getConnection("jdbc:sqlite:res/userdb.db"); c = DriverManager.getConnection("jdbc:sqlite:res/userdb.db");
//add the airline //add the airline
stmt = c.createStatement(); stmt = c.createStatement();
String airline = routeToAdd.getAirline().replace("\"", "\"\""); String airline = routeToAdd.getAirlineName().replace("\"", "\"\"");
String sourceAir = routeToAdd.departsFrom().replace("\"", "\"\""); String sourceAir = routeToAdd.departsFrom().replace("\"", "\"\"");
String destAir = routeToAdd.arrivesAt().replace("\"", "\"\""); String destAir = routeToAdd.arrivesAt().replace("\"", "\"\"");
String equipment = routeToAdd.getEquipment().replace("\"", "\"\""); String equipment = routeToAdd.getEquipment().replace("\"", "\"\"");
@ -972,7 +1003,7 @@ public class Dataset {
routeToAdd.setID(routeID); routeToAdd.setID(routeID);
routes.add(routeToAdd); routes.add(routeToAdd);
//routeAirline + routeSourceAirport + routeArrvAirport + routeCodeShare + routeStops + routeEquip //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); routeDictionary.put(routeKey, routeToAdd);
} catch ( Exception e ) { } catch ( Exception e ) {
System.err.println( e.getClass().getName() + ": " + e.getMessage() ); System.err.println( e.getClass().getName() + ": " + e.getMessage() );

@ -8,19 +8,20 @@ import seng202.group9.Controller.DataException;
* *
*/ */
public class Route { 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 int stops;
private String codeShare; private String codeShare;
private String equipment; private String equipment;
private String airline; private String airlineName;
private String departureAirport; private String departureAirport;
private String arrivalAirport; private String arrivalAirport;
private Airport sourceAirport; private Airport sourceAirport;
private Airport destinationAirport; private Airport destinationAirport;
private Airline airline = null;
/** /**
* Constructor for pulling from database * Constructor for pulling from database
* @param airline * @param airlineName
* @param ID * @param ID
* @param departureAirport * @param departureAirport
* @param arrivalAirport * @param arrivalAirport
@ -28,34 +29,34 @@ public class Route {
* @param stops * @param stops
* @param equipment * @param equipment
*/ */
public Route(int ID, String airline, String departureAirport, String arrivalAirport, public Route(int ID, String airlineName, String departureAirport, String arrivalAirport,
String codeShare, int stops, String equipment){ String codeShare, int stops, String equipment){
this.ID = ID; this.ID = ID;
this.stops = stops; this.stops = stops;
this.codeShare = codeShare; this.codeShare = codeShare;
this.equipment = equipment; this.equipment = equipment;
this.airline = airline; this.airlineName = airlineName;
this.departureAirport = departureAirport; this.departureAirport = departureAirport;
this.arrivalAirport = arrivalAirport; this.arrivalAirport = arrivalAirport;
} }
/** /**
* Constructor for adding * Constructor for adding
* @param airline * @param airlineName
* @param departureAirport * @param departureAirport
* @param arrivalAirport * @param arrivalAirport
* @param codeShare * @param codeShare
* @param stops * @param stops
* @param equipment * @param equipment
*/ */
public Route(String airline, String departureAirport, String arrivalAirport, public Route(String airlineName, String departureAirport, String arrivalAirport,
String codeShare, int stops, String equipment){ String codeShare, int stops, String equipment){
//remember to set the id manually later after adding it to the database and grab //remember to set the id manually later after adding it to the database and grab
//the new id value of the route. //the new id value of the route.
this.ID = -1; this.ID = -1;
this.stops = stops; this.stops = stops;
this.codeShare = codeShare; this.codeShare = codeShare;
this.equipment = equipment; this.equipment = equipment;
this.airline = airline; this.airlineName = airlineName;
this.departureAirport = departureAirport; this.departureAirport = departureAirport;
this.arrivalAirport = arrivalAirport; this.arrivalAirport = arrivalAirport;
} }
@ -102,11 +103,11 @@ public class Route {
this.equipment = equipment; this.equipment = equipment;
} }
/** /**
* sets airline that flies this route * sets airlineName that flies this route
* @param airline * @param airlineName
*/ */
public void setAirline(String airline) { public void setAirlineName(String airlineName) {
this.airline = airline; this.airlineName = airlineName;
} }
/** /**
* returns the id of this route * returns the id of this route
@ -141,11 +142,11 @@ public class Route {
return equipment; return equipment;
} }
/** /**
* returns the airline that flies this route * returns the airlineName that flies this route
* @return * @return
*/ */
public String getAirline(){ public String getAirlineName(){
return airline; return airlineName;
} }
/** /**
* returns the source airport of this route * returns the source airport of this route
@ -194,12 +195,27 @@ public class Route {
this.sourceAirport = sourceAirport; 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 * Checks is passed route is a duplicate of the current one if so it throws an DataException
*/ */
public void hasDuplicate(Route route) throws DataException{ public void hasDuplicate(Route route) throws DataException{
//routeAirline + routeSourceAirport + routeArrvAirport + routeCodeShare + routeStops + routeEquip //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.arrivesAt().equals(this.arrivalAirport) && route.getCode().equals(this.codeShare)
&& route.getStops() == this.stops && route.getEquipment().equals(this.equipment)){ && route.getStops() == this.stops && route.getEquipment().equals(this.equipment)){
throw new DataException("This Route already exists."); throw new DataException("This Route already exists.");
@ -208,7 +224,7 @@ public class Route {
@Override @Override
public String toString(){ 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 //test getters
////////////// //////////////
assertEquals(route.getAirline(), "BA"); assertEquals(route.getAirlineName(), "BA");
assertEquals(route.departsFrom(), "SIN"); assertEquals(route.departsFrom(), "SIN");
assertEquals(route.arrivesAt(), "LHR"); assertEquals(route.arrivesAt(), "LHR");
assertEquals(route.getCode(), ""); assertEquals(route.getCode(), "");
@ -35,14 +35,14 @@ public class RouteTest extends TestCase {
/////////////// ///////////////
//test setters //test setters
/////////////// ///////////////
route.setAirline("BAH"); route.setAirlineName("BAH");
route.setArrivalAirport("LEFT-HAND-RULE"); route.setArrivalAirport("LEFT-HAND-RULE");
route.setDepartureAirport("SING-SONG"); route.setDepartureAirport("SING-SONG");
route.setCode("Y"); route.setCode("Y");
route.setStops(5); route.setStops(5);
route.setEquipment("747 840"); route.setEquipment("747 840");
assertEquals(route.getAirline(), "BAH"); assertEquals(route.getAirlineName(), "BAH");
assertEquals(route.departsFrom(), "SING-SONG"); assertEquals(route.departsFrom(), "SING-SONG");
assertEquals(route.arrivesAt(), "LEFT-HAND-RULE"); assertEquals(route.arrivesAt(), "LEFT-HAND-RULE");
assertEquals(route.getCode(), "Y"); assertEquals(route.getCode(), "Y");

Loading…
Cancel
Save