View Javadoc

1   /*
2    * To change this template, choose Tools | Templates
3    * and open the template in the editor.
4    */
5   
6   package cz.cuni.amis.pogamut.udk.communication.translator.server.state;
7   
8   import cz.cuni.amis.fsm.FSMState;
9   import cz.cuni.amis.fsm.FSMTransition;
10  import cz.cuni.amis.fsm.IFSMState;
11  import cz.cuni.amis.pogamut.base.communication.messages.InfoMessage;
12  import cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.MapList;
13  import cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.MapListEnd;
14  import cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.MapListStart;
15  import cz.cuni.amis.pogamut.udk.communication.translator.TranslatorContext;
16  import cz.cuni.amis.pogamut.udk.communication.translator.server.support.ServerListState;
17  import cz.cuni.amis.pogamut.udk.communication.translator.shared.events.MapListObtained;
18  
19  /**
20   *
21   * @author ik
22   */
23  @FSMState(map={@FSMTransition(
24  					state=ServerRunningState.class,
25  					symbol={MapListEnd.class},
26  					transition={})}
27  )
28  public class MapListState extends ServerListState<MapList, TranslatorContext> {
29  
30  	public MapListState() {
31  		super(MapListStart.class, MapList.class, MapListEnd.class);
32  	}
33  	
34  	@Override
35  	public void stateLeaving(TranslatorContext context,
36  			IFSMState<InfoMessage, TranslatorContext> toState, InfoMessage symbol) {
37  		super.stateLeaving(context, toState, symbol);
38  		context.getEventQueue().pushEvent(new MapListObtained(getList()));
39  		newList();
40  	}
41  	
42  	@Override
43  	protected void innerStateSymbol(TranslatorContext context,
44  			InfoMessage symbol) {
45  		super.innerStateSymbol(context, symbol);
46  		if (symbol instanceof MapList) {
47  			context.getEventQueue().pushEvent((MapList)symbol);
48  		}
49  	}
50  
51  }
52