package de.bht.fpa.proxypattern.coffemachine.impl; import de.bht.fpa.proxypattern.coffemachine.ICoffeMachine; import de.bht.fpa.proxypattern.coffemachine.ICoffeMachineState; public class ChipInsertedState implements ICoffeMachineState { private final ICoffeMachine coffeeMachine; public ChipInsertedState(ICoffeMachine coffeeMachine) { this.coffeeMachine = coffeeMachine; } @Override public String insertChip() { return "Sie haben bereits einen Chip eingelegt."; } @Override public String ecjectChip() { coffeeMachine.setState(new NoChipState(coffeeMachine)); return "Ihr eingelegter Chip wird ausgeworfen."; } @Override public String selectBeverage() { coffeeMachine.setState(new BeverageSelectedState(coffeeMachine)); String result = "Sie haben ein Getränk ausgewählt."; return result + coffeeMachine.dispenseBeverage(); } @Override public String dispenseBeverage() { return "Sie haben ein Chip eingelegt, aber noch kein ein Getränk ausgewählt."; } }