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.base.communication.translator.event.IWorldChangeEvent;
8 import cz.cuni.amis.pogamut.udk.communication.messages.gbinfomessages.ConfigChange;
9 import cz.cuni.amis.pogamut.udk.communication.translator.TranslatorContext;
10 import cz.cuni.amis.pogamut.udk.communication.translator.TranslatorMessages;
11 import cz.cuni.amis.pogamut.udk.communication.translator.UnexpectedMessageException;
12 import cz.cuni.amis.pogamut.udk.communication.translator.bot.support.BotMessageExpectedState;
13
14
15
16
17
18 @FSMState(map={
19 @FSMTransition(
20 state=InitedMessageExpectedState.class,
21 symbol={ConfigChange.class},
22 transition={}
23 )
24 }
25 )
26 public class ConfigureMessageExpectedState extends BotMessageExpectedState<TranslatorContext> {
27
28 public ConfigureMessageExpectedState() {
29 super(ConfigChange.class);
30 }
31
32 @Override
33 public void stateLeaving(TranslatorContext context, IFSMState<InfoMessage, TranslatorContext> toState, InfoMessage symbol) {
34 super.stateLeaving(context, toState, symbol);
35 if (!(symbol instanceof IWorldChangeEvent)) throw new UnexpectedMessageException(TranslatorMessages.messageNotWorldEvent(this, symbol), context.getLogger(), this);
36 context.getEventQueue().pushEvent((IWorldChangeEvent)symbol);
37 }
38
39 }