package design.model.holeplay; import design.model.Hole; public class SetupState implements HoleState { @Override public void enter(HolePlayContext ctx) { ctx.clearInProgressPlay(); // Maybe we don't need this? } @Override public void handleStart(HolePlayContext ctx) { Hole hole = ctx.getRound().getCurrentHole(); ctx.beginNewPlay(hole.getNumber()); ctx.setState(new PlayState()); } @Override public void handleShot(HolePlayContext ctx, design.model.Club club, Integer distanceYds) { throw new IllegalStateException("Cannot record a shot during setup."); } @Override public void handleHoleOut(HolePlayContext ctx) { throw new IllegalStateException("Cannot hole out during setup."); } @Override public String name() { return "SetupState"; } }