[java]
/**
* 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);
}
}
[/java]