From 462f2304e49b044acee90339ee7b5427b64e82c4 Mon Sep 17 00:00:00 2001 From: YaFedImYaEatIm Date: Fri, 16 Sep 2016 12:45:24 +1200 Subject: [PATCH] Made Airline Filter --- .../group9/Controller/AirlineFilter.java | 131 +++++++++++++ .../group9/Controller/AirportFilter.java | 180 ++++++++++++++++++ .../java/seng202/group9/Controller/App.java | 4 + .../seng202/group9/Controller/Dataset.java | 2 +- .../group9/Controller/RouteFilter.java | 1 + .../java/seng202/group9/Core/Airline.java | 2 +- 6 files changed, 318 insertions(+), 2 deletions(-) create mode 100644 src/main/java/seng202/group9/Controller/AirlineFilter.java create mode 100644 src/main/java/seng202/group9/Controller/AirportFilter.java 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 1d60ab7..2117ce8 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/RouteFilter.java b/src/main/java/seng202/group9/Controller/RouteFilter.java index 67c3097..18ab7c8 100644 --- a/src/main/java/seng202/group9/Controller/RouteFilter.java +++ b/src/main/java/seng202/group9/Controller/RouteFilter.java @@ -4,4 +4,5 @@ package seng202.group9.Controller; * Created by fwy13 on 16/09/16. */ public class RouteFilter { + } 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;