package de.bht.fpa.statepattern.v4; import de.bht.fpa.statepattern.v4.states.BeverageSelectedState; import de.bht.fpa.statepattern.v4.states.ChipInsertedState; import de.bht.fpa.statepattern.v4.states.ICoffeMachineState; import de.bht.fpa.statepattern.v4.states.NoChipState; import de.bht.fpa.statepattern.v4.states.OutOfOrderState; public class CoffeeMachine { private final ICoffeMachineState noChipState = new NoChipState(this); private final ICoffeMachineState chipInsertedState = new ChipInsertedState(this); private final ICoffeMachineState beverageSelectedState = new BeverageSelectedState(this); private final ICoffeMachineState outOfOrderState = new OutOfOrderState(); private ICoffeMachineState state = noChipState; private int amountOfBeverage; public CoffeeMachine(int amountOfBeverage) { System.out.println("\nWillkommen."); this.amountOfBeverage = amountOfBeverage; } public String insertChip() { return state.insertChip(); } public String ecjectChip() { return state.ecjectChip(); } public String selectBeverage() { return state.selectBeverage(); } public String dispenseBeverage() { return state.dispenseBeverage(); } public void setState(ICoffeMachineState state) { this.state = state; } public ICoffeMachineState getNoChipState() { return noChipState; } public ICoffeMachineState getChipInsertedState() { return chipInsertedState; } public ICoffeMachineState getBeverageSelectedState() { return beverageSelectedState; } public int getAmountOfBeverage() { return amountOfBeverage; } public void setAmountOfBeverage(int amountOfBeverage) { this.amountOfBeverage = amountOfBeverage; } public ICoffeMachineState getOutOfOrderState() { return outOfOrderState; } }