publicclassContext{
State state;
State openState =newOpenState(this);
State closeState =newCloseState(this);
State runState =newRunState(this);
State stopState =newStopState(this);publicContext(){this.state =getStopState();}publicvoidrun(){
state.run();}publicvoidopen(){
state.open();}publicvoidstop(){
state.stop();}publicvoidclose(){
state.close();}publicvoidsetState(State state){this.state = state;}public State getOpenState(){return openState;}public State getCloseState(){return closeState;}public State getRunState(){return runState;}public State getStopState(){return stopState;}}
public abstract class State { public abstract void open(); public abstract void close(); public abstract void run(); public abstract void stop();}public class RunState extends State{ Context context; public RunState(Context con.