package jadex.bdi.examples.marsworld.carry; import jadex.application.runtime.IApplicationExternalAccess; import jadex.application.space.agr.AGRSpace; import jadex.application.space.agr.Group; import jadex.application.space.envsupport.environment.ISpaceObject; import jadex.base.fipa.SFipa; import jadex.bdi.runtime.IChangeEvent; import jadex.bdi.runtime.IMessageEvent; import jadex.bdi.runtime.Plan; import jadex.bridge.IComponentIdentifier; /** * Inform the sentry agent about a new target. */ public class InformNewTargetPlan extends Plan { //-------- methods -------- /** * The plan body. */ public void body() { IChangeEvent reason = (IChangeEvent)getReason(); ISpaceObject target = (ISpaceObject)reason.getValue(); AGRSpace agrs = (AGRSpace)((IApplicationExternalAccess)getScope().getParent()).getSpace("myagrspace"); Group group = agrs.getGroup("mymarsteam"); IComponentIdentifier[] sentries = group.getAgentsForRole("sentry"); if(sentries!=null) { IMessageEvent mevent = createMessageEvent("inform_target"); mevent.getParameterSet(SFipa.RECEIVERS).addValues(sentries); mevent.getParameter(SFipa.CONTENT).setValue(target); sendMessage(mevent); } // System.out.println("Informing sentries: "+getScope().getAgentName()); } }