From a697cdcd21092119208d59209da2127b2ad02477 Mon Sep 17 00:00:00 2001 From: WillemDalton Date: Mon, 6 Oct 2025 22:50:40 -0400 Subject: working on course filtering --- .../design/model/course_search/CourseList.java | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'src/main/java/design/model/course_search/CourseList.java') diff --git a/src/main/java/design/model/course_search/CourseList.java b/src/main/java/design/model/course_search/CourseList.java index 82648c2..ac2f334 100644 --- a/src/main/java/design/model/course_search/CourseList.java +++ b/src/main/java/design/model/course_search/CourseList.java @@ -2,6 +2,7 @@ package design.model.course_search; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; import design.model.*; @@ -66,6 +67,44 @@ 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 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. */ @@ -86,4 +125,11 @@ public class CourseList implements ICourse { @Override public List getHoles() { return null; } + + @Override + public String toString() + { + // to do: implement returning courslist children + return "wip"; + } } -- cgit v1.2.3 From db1ede10a6547b51ffed71dc86d73f3a6c8af129 Mon Sep 17 00:00:00 2001 From: WillemDalton Date: Tue, 7 Oct 2025 09:10:05 -0400 Subject: added some comments, allows users to add courses to profile, fixed displaying course lists --- .../design/model/course_search/CourseList.java | 42 +--------------------- 1 file changed, 1 insertion(+), 41 deletions(-) (limited to 'src/main/java/design/model/course_search/CourseList.java') 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 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"; } } -- cgit v1.2.3 From ddcfcf82baf737e183ec7b00edeee26894516c58 Mon Sep 17 00:00:00 2001 From: sowgro Date: Thu, 9 Oct 2025 08:06:56 -0400 Subject: fix formatting --- .../design/model/course_search/CourseList.java | 66 ++++++++++++---------- 1 file changed, 35 insertions(+), 31 deletions(-) (limited to 'src/main/java/design/model/course_search/CourseList.java') diff --git a/src/main/java/design/model/course_search/CourseList.java b/src/main/java/design/model/course_search/CourseList.java index 360dc9b..c2411f7 100644 --- a/src/main/java/design/model/course_search/CourseList.java +++ b/src/main/java/design/model/course_search/CourseList.java @@ -1,10 +1,10 @@ package design.model.course_search; +import design.model.Hole; + import java.util.ArrayList; import java.util.List; -import design.model.*; - /* * Defines a list of courses that can be sorted, added to or removed from. * Willem Dalton @@ -13,83 +13,87 @@ public class CourseList implements ICourse { private CourseSorter sorter; private List courses; - public CourseList() - { + public CourseList() { courses = new ArrayList<>(); } /* * Grab the list of courses */ - public List getCourses() - { + public List getCourses() { return courses; } /* * Set the list of courses equal to an existing list */ - public void setCourses(List courses) - { + public void setCourses(List courses) { this.courses = courses; } /* - * set the chosen sorting algorithm for the given list. - */ - public void setSorter(CourseSorter courseSorter) - { + * set the chosen sorting algorithm for the given list. + */ + public void setSorter(CourseSorter courseSorter) { sorter = courseSorter; } /* * Add a new course to the list. */ - public void add(ICourse course) - { + public void add(ICourse course) { courses.add(course); } /* - * Remove a course from the list. + * Remove a course from the list. */ - public void remove(ICourse course) - { + public void remove(ICourse course) { courses.remove(course); } /* * Sort the list. */ - public void sort() - { + public void sort() { sorter.sortCourses(courses); } - + /* * All overrides of the ICourse class. This is a drawback of the composite pattern, but it's pretty negligible here. return some dummy values. */ @Override - public String getName() { return "Course List"; } - + public String getName() { + return "Course List"; + } + @Override - public float getDifficultyRating() { return 0; } + public float getDifficultyRating() { + return 0; + } @Override - public String getLocation() { return ""; } - + public String getLocation() { + return ""; + } + @Override - public int getTotalPar() { return 0; } + public int getTotalPar() { + return 0; + } @Override - public int getHoleCount() { return 0; } + public int getHoleCount() { + return 0; + } @Override - public List getHoles() { return null; } + public List getHoles() { + return null; + } - @Override - public String toString() - { + @Override + public String toString() { return "Course List"; } } -- cgit v1.2.3