View Javadoc

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.InitedMessage;
9   import cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.InitedMessageMessage;
10  import cz.cuni.amis.pogamut.ut2004.communication.translator.TranslatorContext;
11  import cz.cuni.amis.pogamut.ut2004.communication.translator.TranslatorMessages;
12  import cz.cuni.amis.pogamut.ut2004.communication.translator.UnexpectedMessageException;
13  import cz.cuni.amis.pogamut.ut2004.communication.translator.bot.support.BotMessageExpectedState;
14  
15  /**
16   * Waits for InitedMessage message, switches to the FirstSpawnExpectedState.
17   * @author Jimmy
18   */
19  @FSMState(
20  			map={
21  				@FSMTransition(
22  					state=FirstSpawnExpectedState.class, 
23  					symbol={InitedMessageMessage.class}, 
24  					transition={}
25  				)
26  			}
27  )
28  public class InitedMessageExpectedState extends BotMessageExpectedState<TranslatorContext>{
29  
30  	public InitedMessageExpectedState() {
31  		super(InitedMessage.class);
32  	}
33  	
34  	@Override
35  	public void stateEntering(TranslatorContext context,
36  			IFSMState<InfoMessage, TranslatorContext> fromState, InfoMessage symbol) {
37  		super.stateEntering(context, fromState, symbol);
38  	}
39  	
40  	@Override
41  	public void stateLeaving(TranslatorContext context, IFSMState<InfoMessage, TranslatorContext> toState, InfoMessage symbol) {
42  		super.stateLeaving(context, toState, symbol);
43  		if (!(symbol instanceof IWorldChangeEvent)) throw new UnexpectedMessageException(TranslatorMessages.messageNotWorldEvent(this, symbol), context.getLogger(), this);
44  		context.getEventQueue().pushEvent((IWorldChangeEvent)symbol);
45  	}
46  
47  }