/** * Section 5.2.4 page 96 * * This class implements a SequentialBehaviour that uses the receivedMsg member variable * to share data among subbehaviours. **/ import jade.core.Agent; import jade.core.behaviours.*; import jade.lang.acl.ACLMessage; public class MySequentialBehaviour extends SequentialBehaviour { private ACLMessage receivedMsg; public MySequentialBehaviour(Agent a) { super(a); addSubBehaviour(new SimpleBehaviour(a) { private boolean finished = false; public void action() { receivedMsg = myAgent.receive(); if (receivedMsg != null) { finished = true; } else { block(); } } public boolean done() { return finished; } } ); addSubBehaviour(new OneShotBehaviour(a) { public void action() { // Process receivedMsg } } ); } }