Chapitre 3 : Approche proposée et presentation
de l~oatil d~veloppe
if (Prix > 50000)
{
ACLMessage_with_role msg1 = new
ACLMessage_with_role(ACLMessage.CANCEL);
msg1.setContent("Ignorer la demande");
msg1.addReceiver(new AID("AgentB",
AID.ISLOCALNAME),"telemarketing",5);
send(msg1);
}
}
};
//Behaviour qui permet d'accepter ou rejeter la proposition :
OneShotBehaviour accepter_ou_rejeter_propose =
new OneShotBehaviour() {
public void action()
{
ACLMessage message = null ;
while (message == null)
{
message = receive() ;
}
int propose = 0;
if(message == receive
(MessageTemplate.MatchPerformative(ACLMessage.NOT_UNDERSTOOD)))
{
propose = 2;
//ajouter un behaviour.
}
if(message ==
receive(MessageTemplate.MatchPerformative(ACLMessage.REFUSE)))
{
propose = 3;
//ajouter un behaviour.
}
if(message ==
receive(MessageTemplate.MatchPerformative(ACLMessage.PROPOSE)))
{
if (message.getContent().contains("La liste des
produits disponible est:")&& message.getContent().contains("Computer
DELL"))
{
} else
{
}
}
propose = 0;
propose = 1;
Chapitre 3 : Approche proposée et presentation
de l~oatil d~veloppe
switch(propose)
{
case(0):
{
ACLMessage_with_role msg = new
ACLMessage_with_role(ACLMessage.ACCEPT_PROPOSAL);
msg.setContent("la proposition est acceptable,
Donnez moi le prix");
msg.addReceiver(new AID("AgentB",
AID.ISLOCALNAME),"telemarketing",3);
send(msg);
addBehaviour("Acheteur", traiter_prix);
break;
}
case(1):
{
ACLMessage_with_role msg = new
ACLMessage_with_role(ACLMessage.REJECT_PROPOSAL);
msg.setContent("rejeter la proposition");
msg.addReceiver(new AID("AgentB",
AID.ISLOCALNAME),"telemarketing",3);
send(msg); break;
}
}
};
}
addBehaviour("Acheteur",demande);
addBehaviour("Acheteur",accepter_ou_rejeter_propose);
}
}
Le code de l'agent AgentB est le suivant :
package Memoire_mecibah_zina;
import jade.core.AID;
import jade.core.Agent;
import jade.core.behaviours.OneShotBehaviour;
import jade.lang.acl.ACLMessage;
import jade.lang.acl.MessageTemplate;
public class AgentB extends
telemarketing { protected void setup()
{
//l'ajout d'un nouveau produit :
produit a = new produit(); produits.add(a);
Chapitre 3 : Approche proposée et presentation
de l~oatil d~veloppe
//Enregistrement de la description de l'agent dans DF (Directory
Facilitator)
OneShotBehaviour enregisterDF = new
OneShotBehaviour() {
public void action()
{
register_in_DF();
}
};
//Behaviour qui permet d'accepetr la proposition
final OneShotBehaviour accepter_proposition
= new OneShotBehaviour()
{
public void action()
{
ACLMessage_with_role msg = new
ACLMessage_with_role(ACLMessage.INFORM);
msg.setContent("le prix du computer DELL est:" +
"70000" +"DA" );
msg.addReceiver(new AID("AgentA",
AID.ISLOCALNAME),"Acheteur",4);
send(msg);
ACLMessage message2 = null ;
while (message2 == null)
{
message2 = receive() ;
}
if
(message2.getContent().equalsIgnoreCase("Ignorer
la demande"))
{
System.out.println("\n oops !!!");
}
else
{
System.out.println ("\n Bravo");
}
}
};
//Behaviour qui permet de rejeter la proposition
final OneShotBehaviour rejeter_proposition
= new OneShotBehaviour()
{
public void action()
{ }
};
Chapitre 3 : Approche proposée et presentation
de l~oatil d~veloppe //attente de message (de l'agent
Acheteur <<AgentA>>)
OneShotBehaviour recevoir_message = new
OneShotBehaviour() {
public void action()
{
ACLMessage message =
receive(MessageTemplate.MatchPerformative(ACLMessage.REQUEST));
while (message == null)
{
message = receive() ;
}
boolean message_adequat =
false;
if
(message.getContent().equalsIgnoreCase("donner
moi la liste des produits SVP"))
{
message_adequat = true;
}
char test = 'N';
if(message_adequat != false)
{
if(produits.size() == 0)
{
test = 'R'; }
else
{
test = 'P';
}
}
switch (test)
{
case('R'):
{
ACLMessage_with_role msg = new
ACLMessage_with_role(ACLMessage.REFUSE);
msg.setContent("la liste des
produits est vide");
msg.addReceiver(new AID("AgentA",
AID.ISLOCALNAME),"Acheteur",2);
send(msg);
break;
}
case('N'):
{
ACLMessage_with_role msg = new
ACLMessage_with_role(ACLMessage.NOT_UNDERSTOOD);
|