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.Spawn;
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.AbstractBotFSMState;
13
14 import java.util.logging.Level;
15
16
17
18
19
20 @FSMState(map = {
21 @FSMTransition(
22 state = BotAliveState.class,
23 symbol = {Spawn.class },
24 transition = {}
25 )
26 }
27 )
28 public class BotDeadState extends AbstractBotFSMState<InfoMessage, TranslatorContext> {
29
30 public void stateEntering(TranslatorContext arg0, IFSMState<InfoMessage, TranslatorContext> arg1, InfoMessage arg2) {
31 if (arg0.getLogger().isLoggable(Level.WARNING)) arg0.getLogger().warning("Bot switched to DEAD STATE.");
32 }
33
34 public void stateSymbol(TranslatorContext context, InfoMessage symbol) {
35 if (context.getLogger().isLoggable(Level.WARNING)) context.getLogger().warning(TranslatorMessages.unprocessedMessage(this, symbol));
36 }
37
38 public void stateLeaving(TranslatorContext arg0, IFSMState<InfoMessage, TranslatorContext> arg1, InfoMessage arg2) {
39 if (!(arg2 instanceof Spawn)) throw new UnexpectedMessageException(TranslatorMessages.unexpectedMessage(this, arg2, Spawn.class), arg0.getLogger(), this);
40 if (!(arg2 instanceof IWorldChangeEvent)) throw new UnexpectedMessageException(TranslatorMessages.messageNotWorldEvent(this, arg2), arg0.getLogger(), this);
41 arg0.getEventQueue().pushEvent((IWorldChangeEvent) arg2);
42 }
43
44 public void init(TranslatorContext arg0) {
45
46 }
47
48 public void restart(TranslatorContext arg0) {
49
50 }
51
52 }