diff options
Diffstat (limited to 'src/main/java/design/model/course_search/CurrentSearchQuery.java')
| -rw-r--r-- | src/main/java/design/model/course_search/CurrentSearchQuery.java | 30 |
1 files changed, 14 insertions, 16 deletions
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); } } |
