diff --git a/src/main/java/seng202/group9/Controller/AirlineFilter.java b/src/main/java/seng202/group9/Controller/AirlineFilter.java new file mode 100644 index 0000000..a3571aa --- /dev/null +++ b/src/main/java/seng202/group9/Controller/AirlineFilter.java @@ -0,0 +1,131 @@ +package seng202.group9.Controller; + +import seng202.group9.Core.Airline; + +import java.util.ArrayList; + +/** + * Created by fwy13 on 16/09/16. + */ +public class AirlineFilter extends Filter{ + + private ArrayList baseArray; + private ArrayList filteredList; + + public AirlineFilter(ArrayList baseList){ + filteredList = new ArrayList(); + baseArray = new ArrayList(); + for (Airline airline: baseList){ + baseArray.add(airline); + filteredList.add(airline); + } + } + + public void filterName(String name){ + String regexCode = "(?i).*"+name+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!filteredList.get(index).getName().matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void filterAlias(String alias){ + String regexCode = "(?i).*"+alias+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!filteredList.get(index).getAlias().matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void filterIATA(String IATA){ + String regexCode = "(?i).*"+IATA+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!filteredList.get(index).getIATA().matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void filterICAO(String ICAO){ + String regexCode = "(?i).*"+ICAO+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!filteredList.get(index).getICAO().matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void filterCallsign(String callsign){ + String regexCode = "(?i).*"+callsign+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!filteredList.get(index).getCallSign().matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void filterCountry(String country){ + String regexCode = "(?i).*"+country+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!filteredList.get(index).getCountryName().matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void filterActive(String active){ + String regexCode = "(?i).*"+active+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!filteredList.get(index).getActive().matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void reset() { + filteredList = new ArrayList(); + for (Airline airline: filteredList){ + filteredList.add(airline); + } + } + + public ArrayList getFilteredData() { + return filteredList; + } + + public void setBaseList(ArrayList arrayList) { + baseArray = new ArrayList(); + for (Airline airline: arrayList){ + baseArray.add(airline); + } + } + + public void printFilter(){ + for (Airline airline: filteredList){ + System.out.println(airline); + } + } +} diff --git a/src/main/java/seng202/group9/Controller/AirportFilter.java b/src/main/java/seng202/group9/Controller/AirportFilter.java new file mode 100644 index 0000000..21a22b7 --- /dev/null +++ b/src/main/java/seng202/group9/Controller/AirportFilter.java @@ -0,0 +1,180 @@ +package seng202.group9.Controller; + +import seng202.group9.Core.Airline; +import seng202.group9.Core.Airport; + +import java.util.ArrayList; + +/** + * Created by fwy13 on 16/09/16. + */ +public class AirportFilter extends Filter{ + + private ArrayList baseArray; + private ArrayList filteredList; + + public AirportFilter(ArrayList baseList){ + filteredList = new ArrayList(); + baseArray = new ArrayList(); + for (Airport airport: baseList){ + baseArray.add(airport); + filteredList.add(airport); + } + } + + public void filterName(String name){ + String regexCode = "(?i).*"+name+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!filteredList.get(index).getName().matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void filterCity(String city){ + String regexCode = "(?i).*"+city+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!filteredList.get(index).getCityName().matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void filterCountry(String country){ + String regexCode = "(?i).*"+country+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!filteredList.get(index).getCountryName().matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void filterIATA_FFA(String IATA_FFA){ + String regexCode = "(?i).*"+IATA_FFA+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!filteredList.get(index).getIATA_FFA().matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void filterICAO(String ICAO){ + String regexCode = "(?i).*"+ICAO+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!filteredList.get(index).getICAO().matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void filterLatitude(String latitude){ + String regexCode = "(?i).*"+latitude+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!String.valueOf(filteredList.get(index).getLatitude()).matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void filterLongitude(String longitude){ + String regexCode = "(?i).*"+longitude+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!String.valueOf(filteredList.get(index).getLongitude()).matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void filterAltitude(String altitude){ + String regexCode = "(?i).*"+altitude+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!String.valueOf(filteredList.get(index).getAltitude()).matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void filterTimezone(String timezone){ + String regexCode = "(?i).*"+timezone+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!String.valueOf(filteredList.get(index).getCity(). getTimezone()).matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void filterOlson(String olson){ + String regexCode = "(?i).*"+olson+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!filteredList.get(index).getCity().getTimeOlson().matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void filterDST(String DST){ + String regexCode = "(?i).*"+DST+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!filteredList.get(index).getCountry().getDST().matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void reset() { + filteredList = new ArrayList(); + for (Airport airport: filteredList){ + filteredList.add(airport); + } + } + + public ArrayList getFilteredData() { + return filteredList; + } + + public void setBaseList(ArrayList arrayList) { + baseArray = new ArrayList(); + for (Airport airport: arrayList){ + baseArray.add(airport); + } + } + + public void printFilter(){ + for (Airport airport: filteredList){ + System.out.println(airport); + } + } +} diff --git a/src/main/java/seng202/group9/Controller/App.java b/src/main/java/seng202/group9/Controller/App.java index bb8c65a..86f3555 100644 --- a/src/main/java/seng202/group9/Controller/App.java +++ b/src/main/java/seng202/group9/Controller/App.java @@ -62,6 +62,10 @@ public class App extends Application e.printStackTrace(); } + AirlineFilter filter = new AirlineFilter(currentDataset.getAirlines()); + filter.filterName("NZ"); + filter.filterAlias("flight"); + filter.printFilter(); /* //testout single route adding try { diff --git a/src/main/java/seng202/group9/Controller/Dataset.java b/src/main/java/seng202/group9/Controller/Dataset.java index f22568e..73d79d4 100644 --- a/src/main/java/seng202/group9/Controller/Dataset.java +++ b/src/main/java/seng202/group9/Controller/Dataset.java @@ -95,7 +95,7 @@ public class Dataset { String airCallsign = rs.getString("CallSign"); String airCountry = rs.getString("Country"); String airActive = rs.getString("Active"); - Airline airlineToAdd = new Airline(airID, airName, airIATA, airICAO, airAlias, airCallsign, airCountry, airActive); + Airline airlineToAdd = new Airline(airID, airName, airAlias, airIATA, airICAO, airCallsign, airCountry, airActive); //assuming that all names will be unique airlineDictionary.put(airName, airlineToAdd); airlines.add(airlineToAdd); diff --git a/src/main/java/seng202/group9/Controller/Filter.java b/src/main/java/seng202/group9/Controller/Filter.java new file mode 100644 index 0000000..a20a20f --- /dev/null +++ b/src/main/java/seng202/group9/Controller/Filter.java @@ -0,0 +1,11 @@ +package seng202.group9.Controller; + +import java.util.ArrayList; + +/** + * Created by fwy13 on 16/09/16. + */ +public abstract class Filter { + abstract void reset(); + abstract ArrayList getFilteredData(); +} diff --git a/src/main/java/seng202/group9/Controller/RouteFilter.java b/src/main/java/seng202/group9/Controller/RouteFilter.java new file mode 100644 index 0000000..a96408d --- /dev/null +++ b/src/main/java/seng202/group9/Controller/RouteFilter.java @@ -0,0 +1,119 @@ +package seng202.group9.Controller; + +import seng202.group9.Core.Route; + +import java.util.ArrayList; + +/** + * Created by fwy13 on 16/09/16. + */ +public class RouteFilter extends Filter{ + + private ArrayList baseArray; + private ArrayList filteredList; + + public RouteFilter(ArrayList baseList){ + filteredList = new ArrayList(); + baseArray = new ArrayList(); + for (Route route: baseList){ + baseArray.add(route); + filteredList.add(route); + } + } + + public void filterAirline(String airline){ + String regexCode = "(?i).*"+airline+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!filteredList.get(index).getAirlineName().matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void filterSourceAirport(String airport){ + String regexCode = "(?i).*"+airport+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!filteredList.get(index).getDepartureAirport().matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void filterDestinationAirport(String airport){ + String regexCode = "(?i).*"+airport+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!filteredList.get(index).getArrivalAirport().matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void filterCodeshare(String code){ + String regexCode = "(?i).*"+code+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!filteredList.get(index).getCode().matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void filterDestinationStops(String stops){ + String regexCode = "(?i).*"+stops+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!filteredList.get(index).getArrivalAirport().matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void filterEquipment(String equipment){ + String regexCode = "(?i).*"+equipment+".*"; + int index = 0; + while(index < filteredList.size()){ + if (!filteredList.get(index).getEquipment().matches(regexCode)){ + filteredList.remove(index); + }else{ + index++; + } + } + } + + public void reset() { + filteredList = new ArrayList(); + for (Route airline: filteredList){ + filteredList.add(airline); + } + } + + public ArrayList getFilteredData() { + return filteredList; + } + + public void setBaseList(ArrayList arrayList) { + baseArray = new ArrayList(); + for (Route route: arrayList){ + baseArray.add(route); + } + } + + public void printFilter(){ + for (Route route: filteredList){ + System.out.println(route); + } + } +} diff --git a/src/main/java/seng202/group9/Core/Airline.java b/src/main/java/seng202/group9/Core/Airline.java index 64ce272..77574b5 100644 --- a/src/main/java/seng202/group9/Core/Airline.java +++ b/src/main/java/seng202/group9/Core/Airline.java @@ -9,7 +9,7 @@ import java.util.ArrayList; * @author Fan-Wu Yang * */ -public class Airline { +public class Airline{ private int ID; private String IATA; private String ICAO;