From 42592edfa11c56eaabe4ae4abf535e7a605450d5 Mon Sep 17 00:00:00 2001 From: YaFedImYaEatIm Date: Fri, 16 Sep 2016 12:52:15 +1200 Subject: [PATCH] Added Route Filtering --- .../group9/Controller/RouteFilter.java | 115 +++++++++++++++++- 1 file changed, 113 insertions(+), 2 deletions(-) diff --git a/src/main/java/seng202/group9/Controller/RouteFilter.java b/src/main/java/seng202/group9/Controller/RouteFilter.java index 18ab7c8..a96408d 100644 --- a/src/main/java/seng202/group9/Controller/RouteFilter.java +++ b/src/main/java/seng202/group9/Controller/RouteFilter.java @@ -1,8 +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 { - +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); + } + } }