package de.bht.fpa.proxypattern.coffemachine.impl; import de.bht.fpa.proxypattern.coffemachine.ICoffeMachine; import de.bht.fpa.proxypattern.coffemachine.ICoffeMachineState; public class CoffeeMachine implements ICoffeMachine { private ICoffeMachineState state = new NoChipState(this); private int capacity; private final String location; public CoffeeMachine(String location, int capacity) { this.location = location; this.capacity = capacity; } /* * (non-Javadoc) * * @see de.bht.fpa.proxypattern.coffemachine.ICoffeMachine#insertChip() */ @Override public String insertChip() { return state.insertChip(); } /* * (non-Javadoc) * * @see de.bht.fpa.proxypattern.coffemachine.ICoffeMachine#ecjectChip() */ @Override public String ecjectChip() { return state.ecjectChip(); } /* * (non-Javadoc) * * @see de.bht.fpa.proxypattern.coffemachine.ICoffeMachine#selectBeverage() */ @Override public String selectBeverage() { return state.selectBeverage(); } /* * (non-Javadoc) * * @see de.bht.fpa.proxypattern.coffemachine.ICoffeMachine#dispenseBeverage() */ @Override public String dispenseBeverage() { return state.dispenseBeverage(); } /* * (non-Javadoc) * * @see * de.bht.fpa.proxypattern.coffemachine.ICoffeMachine#setState(de.bht.fpa. * proxypattern.coffemachine.states.ICoffeMachineState) */ @Override public void setState(ICoffeMachineState state) { this.state = state; } /* * (non-Javadoc) * * @see de.bht.fpa.proxypattern.coffemachine.ICoffeMachine#getState() */ @Override public String getState() { return state.getClass().getSimpleName(); } /* * (non-Javadoc) * * @see de.bht.fpa.proxypattern.coffemachine.ICoffeMachine#getCapacity() */ @Override public int getCapacity() { return capacity; } /* * (non-Javadoc) * * @see de.bht.fpa.proxypattern.coffemachine.ICoffeMachine#getLocation() */ @Override public String getLocation() { return location; } /* * (non-Javadoc) * * @see de.bht.fpa.proxypattern.coffemachine.ICoffeMachine#setCapacity(int) */ @Override public void setCapacity(int capacity) { this.capacity = capacity; } }