package design.model.course_search; 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 */ public class CourseList implements ICourse { private CourseSorter sorter; private List courses; public CourseList() { courses = new ArrayList<>(); } /* * Grab the list of courses */ public List getCourses() { return courses; } /* * Set the list of courses equal to an existing list */ public void setCourses(List courses) { this.courses = courses; } /* * 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) { courses.add(course); } /* * Remove a course from the list. */ public void remove(ICourse course) { courses.remove(course); } /* * Sort the list. */ 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"; } @Override public float getDifficultyRating() { return 0; } @Override public String getLocation() { return ""; } @Override public int getTotalPar() { return 0; } @Override public int getHoleCount() { return 0; } @Override public List getHoles() { return null; } }