[java]
/**
* Section 5.4.1 page 102
*
*
**/
import jade.core.Agent;
import jade.core.behaviours.*;
import jade.lang.acl.*;
import jade.proto.*;
public class CFPAgent extends Agent {
public void setup() {
final MessageTemplate template = MessageTemplate.and(MessageTemplate.MatchProtocol("fipa-contract-net"),
MessageTemplate.MatchPerformative(ACLMessage.CFP) );
addBehaviour(new CyclicBehaviour(this) {
public void action() {
ACLMessage cfp = myAgent.receive(template);
if (cfp != null) {
myAgent.addBehaviour(new SSContractNetResponder(myAgent, cfp) {
// Redefine callback methods to implement domain-dependent
// logic
} );
}
else {
block();
}
}
} );
}
}
[/java]