package de.bht.fpa.statepattern.v3;
import de.bht.fpa.statepattern.v3.states.BeverageSelectedState;
import de.bht.fpa.statepattern.v3.states.ChipInsertedState;
import de.bht.fpa.statepattern.v3.states.ICoffeMachineState;
import de.bht.fpa.statepattern.v3.states.NoChipState;
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 ICoffeMachineState state = noChipState;
public CoffeeMachine() {
System.out.println("\nWillkommen.");
}
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;
}
}