package design.controller.userinput.menus; import design.controller.userinput.Menu; import design.controller.userinput.MenuOption; import design.model.Course; import design.model.Golfer; import design.runtime.Session; import java.util.Arrays; import java.util.List; import java.util.Objects; public class SelectCourse extends Menu { private final Golfer golfer = Session.getCurrentGolfer(); private Course result; @Override public String getTitle() { return "select course"; } public Course getResult() { Objects.requireNonNull(result); return result; } @Override public List getMenuOptions() { return Arrays.stream(golfer.getCourses()) .map(c -> new MenuOption(c.toString(), () -> result = c)) .toList(); } @Override public void present() { // Checks user has courses of not informs them to add one to their profile if (!golfer.hasCourses()) { System.out.println("You don't have any courses saved to your profile yet."); System.out.println("Use the 'Add Course to Profile' menu first."); new MainMenu().present(); return; } super.present(); } }