1
2
3
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
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