package design.controller.userinput.menus; import design.controller.userinput.Menu; import design.controller.userinput.MenuOption; import design.model.Club; import design.model.Golfer; import design.runtime.Session; import java.util.Arrays; import java.util.List; import java.util.Objects; public class SelectClub extends Menu { private final Golfer golfer = Session.getCurrentGolfer(); private Club result; @Override public String getTitle() { return "select club"; } public Club getResult() { Objects.requireNonNull(result); return result; } @Override public List getMenuOptions() { return Arrays.stream(golfer.getClubs()) .map(g -> new MenuOption(g.toString(), () -> result = g)) .toList(); } @Override public void present() { if (!golfer.hasClubs()) { System.out.println("You don't have any clubs yet. Add one first."); new MainMenu().present(); return; } super.present(); } }