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