diff options
Diffstat (limited to 'src/main/java/design/model/course_search')
3 files changed, 15 insertions, 58 deletions
diff --git a/src/main/java/design/model/course_search/CourseList.java b/src/main/java/design/model/course_search/CourseList.java index ac2f334..360dc9b 100644 --- a/src/main/java/design/model/course_search/CourseList.java +++ b/src/main/java/design/model/course_search/CourseList.java @@ -2,7 +2,6 @@ package design.model.course_search; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import design.model.*; @@ -66,44 +65,6 @@ public class CourseList implements ICourse { { sorter.sortCourses(courses); } - - public CourseList groupByCurrentSorter() - { - CourseList groupedList = new CourseList(); - - if (courses.isEmpty() || sorter == null) - { - return this; - } - - // Sort by current sorter - sort(); - - // Group consecutive equal elements - List<ICourse> currentGroup = new ArrayList<>(); - ICourse prev = null; - - for (ICourse c : courses) { - if (prev == null || !sorter.isEqual(prev, c)) { - if (!currentGroup.isEmpty()) { - CourseList sublist = new CourseList(); - sublist.setCourses(new ArrayList<>(currentGroup)); - groupedList.add(sublist); - currentGroup.clear(); - } - } - currentGroup.add(c); - prev = c; - } - - if (!currentGroup.isEmpty()) { - CourseList sublist = new CourseList(); - sublist.setCourses(currentGroup); - groupedList.add(sublist); - } - - return groupedList; - } /* * All overrides of the ICourse class. This is a drawback of the composite pattern, but it's pretty negligible here. return some dummy values. @@ -129,7 +90,6 @@ public class CourseList implements ICourse { @Override public String toString() { - // to do: implement returning courslist children - return "wip"; + return "Course List"; } } diff --git a/src/main/java/design/model/course_search/CurrentSearchQuery.java b/src/main/java/design/model/course_search/CurrentSearchQuery.java index 3916f0a..c00eb86 100644 --- a/src/main/java/design/model/course_search/CurrentSearchQuery.java +++ b/src/main/java/design/model/course_search/CurrentSearchQuery.java @@ -12,11 +12,19 @@ import design.persistence.MasterDatabase; public class CurrentSearchQuery { public static final CurrentSearchQuery INSTANCE = new CurrentSearchQuery(); - + // initialize our search with the master db data MasterDatabase db = MasterDatabase.INSTANCE; private CourseList query = db.getCourseList(); private final List<CourseSorter> filters = new ArrayList<CourseSorter>(); + + // reset the query + public void reset() + { + query = db.getCourseList(); + clearFilters(); + } + // add a new filter public void addFilter(CourseSorter filter) { @@ -29,7 +37,7 @@ public class CurrentSearchQuery { filters.clear(); } - // print out the filters ( this is for the model checking used filters ) + // print out the filters we're currently using and the order public String printFilters() { String filterResult = ""; @@ -45,7 +53,7 @@ public class CurrentSearchQuery { filterResult += f.toString() + " --> "; } - // very silly way of removing the last arrow from our filter list. it's kind of dumb but it works fine. + // remove last arrow and add padding filterResult = filterResult.substring(0, filterResult.length() - 5); filterResult += "\n"; @@ -66,21 +74,11 @@ public class CurrentSearchQuery { public void search(String searchQuery) { + // only grab courses which fit our search List<ICourse> courses = db.getCourseList().getCourses().stream() - .filter(s -> s != null && s.toString().toLowerCase().contains(searchQuery.toLowerCase())) + .filter(s -> s.toString().toLowerCase().contains(searchQuery.toLowerCase())) .collect(Collectors.toList()); - // Start with filtered base - CourseList current = new CourseList(); - current.setCourses(courses); - - // Sequentially apply filters - for (CourseSorter filter : filters) - { - current.setSorter(filter); - current = current.groupByCurrentSorter(); // regroup after each - } - - query = current; + query.setCourses(courses); } } diff --git a/src/main/java/design/model/course_search/ICourse.java b/src/main/java/design/model/course_search/ICourse.java index 061bbfa..e50eb1b 100644 --- a/src/main/java/design/model/course_search/ICourse.java +++ b/src/main/java/design/model/course_search/ICourse.java @@ -15,5 +15,4 @@ public interface ICourse { List<Hole> getHoles(); int getHoleCount(); int getTotalPar(); - CourseList groupByCurrentSorter(); } |
