summaryrefslogtreecommitdiff
path: root/src/main/java/design/model/course_search/CurrentSearchQuery.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/design/model/course_search/CurrentSearchQuery.java')
-rw-r--r--src/main/java/design/model/course_search/CurrentSearchQuery.java30
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);
}
}