// Project: Patterns2 // Module: state Example // Source code file: HasQuarterState.java // Use the State pattern to implement // the states of a gumball machine. package gumball; public class HasQuarterState implements State { private GumballMachine gumballMachine; public HasQuarterState( GumballMachine theMachine) { this.gumballMachine = theMachine; } public void insertQuarter( ) { System.out.println( "Tried to insert quarter. You already inserted quarter, turn crank."); } public void turnCrank( ) { if (gumballMachine.count > 0) { System.out.println("Crank turned. Gumball dispensed."); (gumballMachine.count)--; gumballMachine.setSoldState( ); } else { System.out.println("Machine sold out."); gumballMachine.setSoldOutState(); } } public void takeGumball( ) { System.out.println( "Tried to take gumball. You must turn crack to get gumball."); } public void refillMachine(int n) { System.out.println( "Gumball machine is not empty, can't refill machine."); } }