1 package cz.cuni.amis.pogamut.udk.communication.translator.bot.state;
2
3 import cz.cuni.amis.fsm.FSMState;
4 import cz.cuni.amis.fsm.FSMTransition;
5 import cz.cuni.amis.fsm.IFSMState;
6 import cz.cuni.amis.pogamut.base.communication.messages.InfoMessage;
7 import cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.Mutator;
8 import cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.MutatorListEnd;
9 import cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.MutatorListStart;
10 import cz.cuni.amis.pogamut.udk.communication.translator.TranslatorContext;
11 import cz.cuni.amis.pogamut.udk.communication.translator.bot.support.BotListState;
12 import cz.cuni.amis.pogamut.udk.communication.translator.shared.events.MutatorListObtained;
13
14
15
16
17
18
19
20 @FSMState(map={
21 @FSMTransition(
22 state=HandshakeControllerState.class,
23 symbol={MutatorListEnd.class},
24 transition={})
25 }
26 )
27 public class MutatorListState extends BotListState<Mutator, TranslatorContext>{
28
29 public MutatorListState() {
30 super(MutatorListStart.class, Mutator.class, MutatorListEnd.class);
31 }
32
33 @Override
34 public void stateEntering(TranslatorContext context, IFSMState<InfoMessage, TranslatorContext> fromState, InfoMessage symbol) {
35 super.restart(context);
36 super.stateEntering(context, fromState, symbol);
37 }
38
39 @Override
40 public void stateLeaving(TranslatorContext context, IFSMState<InfoMessage, TranslatorContext> toState, InfoMessage symbol) {
41 super.stateLeaving(context, toState, symbol);
42 context.getEventQueue().pushEvent(new MutatorListObtained(getList()));
43 newList();
44 }
45
46 @Override
47 public void stateSymbol(TranslatorContext context, InfoMessage symbol) {
48 super.stateSymbol(context, symbol);
49 context.getEventQueue().pushEvent((Mutator)symbol);
50 }
51
52
53 }