module hasquarterstate; import std.stdio : writeln; import state, gumballmachine; class HasQuarterState : State { GumballMachine gumballMachine; this(GumballMachine gumballMachine) { this.gumballMachine = gumballMachine; } void insertQuarter() { writeln("You can't insert another quarter"); } void ejectQuarter() { writeln("Quarter returned"); gumballMachine.setState(gumballMachine.getNoQuarterState()); } void turnCrank() { writeln("You turned..."); gumballMachine.setState(gumballMachine.getSoldState()); } void dispense() { writeln("No gumball dispensed"); } void refill() {} override string toString() const { return "waiting for turn of crank"; } }