import jade.core.AID; import jade.core.Agent; import jade.core.behaviours.FSMBehaviour; import jade.core.behaviours.OneShotBehaviour; import jade.lang.acl.ACLMessage; public class InvAg extends Agent { protected void setup() { System.out.println("Agent "+getLocalName()+" started."); FSMBehaviour InvAg_beh= new FSMBehaviour(); InvAg_beh.registerFirstState(new attendreProvAg(), "attendreProvAg"); InvAg_beh.registerState(new envoiService(), "envoiService"); InvAg_beh.registerLastState(new fin(), "fin"); InvAg_beh.registerDefaultTransition("attendreProvAg", "envoiService"); InvAg_beh.registerTransition("envoiService", "attendreProvAg",0); InvAg_beh.registerTransition("envoiService", "fin",1); addBehaviour( InvAg_beh); } /*****************************************************************/ private class attendreProvAg extends OneShotBehaviour{ public void action() { System.out.println("en attente de l'agent Provisioner"); block(); } } /*****************************************************************/ private class envoiService extends OneShotBehaviour{ private String targetservice; public void action(){ ACLMessage messageRecu = receive(); if (messageRecu.getContent().equalsIgnoreCase("pret") ) { Object[] args = getArguments(); if (args != null && args.length > 0) { targetservice = (String) args[0]; System.out.println("Le service demandé est: "+targetservice); ACLMessage message = new ACLMessage(ACLMessage.INFORM); message.addReceiver(messageRecu.getSender()); message.setContent(targetservice); send(message); } } block(); } } /*****************************************************************/ private class fin extends OneShotBehaviour{ public void action() { System.out.println("arrêt de l'agent"); myAgent.doDelete(); } } }