/** * Section 5.5.2 page 111 * * This code shows to use the AMSSubscriber class for * monitoring all agent creation and termination events. **/ import jade.core.Agent; import jade.domain.introspection.*; import java.util.Map; public class AMSSubscriberAgent extends Agent { public void setup() { AMSSubscriber myAMSSubscriber = new AMSSubscriber() { protected void installHandlers(Map handlers) { // Associate an handler to born-agent events EventHandler creationsHandler = new EventHandler() { public void handle(Event ev) { BornAgent ba = (BornAgent) ev; System.out.println("Born agent "+ba.getAgent().getName()); } }; handlers.put(IntrospectionVocabulary.BORNAGENT, creationsHandler); // Associate an handler to dead-agent events EventHandler terminationsHandler = new EventHandler() { public void handle(Event ev) { DeadAgent da = (DeadAgent) ev; System.out.println("Dead agent "+da.getAgent().getName()); } }; handlers.put(IntrospectionVocabulary.DEADAGENT, terminationsHandler); } }; addBehaviour(myAMSSubscriber); } }