* <li> Sniffer.SNIFF_OFF to deactivate sniffer on an agent/group
* </ul>
*/
public ACLMessage getSniffMsg(List agents, boolean onFlag) {
Iterator it = agents.iterator();
if(onFlag) {
SniffOn so = new SniffOn();
so.setSniffer(getAID());
boolean empty = true;
while(it.hasNext()) {
Agent a = (Agent)it.next();
AID agentID = new AID();
agentID.setName(a.agentName + '@' + getHap());
if(!agentsUnderSniff.contains(a)) {
agentsUnderSniff.add(a);
so.addSniffedAgents(agentID);
empty = false;
}
}
if(!empty) {
try {
Action a = new Action();
a.setActor(getAMS());
a.setAction(so);
ACLMessage requestMsg = getRequest();
requestMsg.setOntology(JADEManagementOntology.NAME);
getContentManager().fillContent(requestMsg, a);
return requestMsg;
}
catch(Exception fe) {
fe.printStackTrace();
}
}
}
else {
SniffOff so = new SniffOff();
so.setSniffer(getAID());
boolean empty = true;
while(it.hasNext()) {
Agent a = (Agent)it.next();
AID agentID = new AID();
agentID.setName(a.agentName + '@' + getHap());
if(agentsUnderSniff.contains(a)) {
agentsUnderSniff.remove(a);
so.addSniffedAgents(agentID);