public class HasCard implements ATMState { ATMMachine atmMachine; public HasCard(ATMMachine newATMMachine){ atmMachine = newATMMachine; } public void insertCard() { System.out.println("You can only insert one card at a time"); } public void ejectCard() { System.out.println("Your card is ejected"); atmMachine.setATMState(atmMachine.getNoCardState()); } public void requestCash(int cashToWithdraw) { System.out.println("You have not entered your PIN"); } public void insertPin(int pinEntered) { if(pinEntered == 1234){ System.out.println("You entered the correct PIN"); atmMachine.correctPinEntered = true; atmMachine.setATMState(atmMachine.getHasPin()); } else { System.out.println("You entered the wrong PIN"); atmMachine.correctPinEntered = false; System.out.println("Your card is ejected"); atmMachine.setATMState(atmMachine.getNoCardState()); } } }