jade.proto
Class SimpleAchieveREResponder
java.lang.Object
|
+--jade.core.behaviours.Behaviour
|
+--jade.core.behaviours.SimpleBehaviour
|
+--jade.proto.SimpleAchieveREResponder
- public class SimpleAchieveREResponder
- extends SimpleBehaviour
- implements FIPANames.InteractionProtocol
This is a single homogeneous and effective implementation of
all the FIPA-Request-like interaction protocols defined by FIPA,
that is all those protocols where the initiator sends a single message
(i.e. it performs a single communicative act) within the scope
of an interaction protocol in order to verify if the RE (Rational
Effect) of the communicative act has been achieved or not.
Note that this is a simple implementation of the AchieveREResponder
.
that does not allow to register Behaviour for the Prepare Response
and Prepare Result Notification states of the protocol
- Version:
- $Date: 2003/02/26 10:08:18 $ $Revision: 1.2 $
- Author:
- Tiziana Trucco - TILab
- See Also:
SimpleAchieveREInitiator
,
AchieveREInitiator
,
AchieveREResponder
, Serialized Form
Field Summary |
java.lang.String |
REQUEST_KEY
key to retrieve from the DataStore of the behaviour the ACLMessage
object sent by the initiator. |
java.lang.String |
RESPONSE_KEY
key to retrieve from the DataStore of the behaviour the ACLMessage
object sent as a response to the initiator. |
java.lang.String |
RESULT_NOTIFICATION_KEY
key to retrieve from the DataStore of the behaviour the ACLMessage
object sent as a result notification to the initiator. |
Fields inherited from interface jade.domain.FIPANames.InteractionProtocol |
FIPA_BROKERING,
FIPA_CONTRACT_NET,
FIPA_DUTCH_AUCTION,
FIPA_ENGLISH_AUCTION,
FIPA_ITERATED_CONTRACT_NET,
FIPA_PROPOSE,
FIPA_QUERY,
FIPA_RECRUITING,
FIPA_REQUEST,
FIPA_REQUEST_WHEN,
FIPA_SUBSCRIBE |
Method Summary |
void |
action()
Runs the behaviour. |
static MessageTemplate |
createMessageTemplate(java.lang.String iprotocol)
This static method can be used
to set the proper message Template (based on the interaction protocol
and the performative)
into the constructor of this behaviour. |
boolean |
done()
This method checks whether this behaviour has finished or not. |
protected ACLMessage |
prepareResponse(ACLMessage request)
This method is called when the initiator's
message is received that matches the message template
passed in the constructor.
|
protected ACLMessage |
prepareResultNotification(ACLMessage request,
ACLMessage response)
This method is called after the response has been sent
and only if the response was an agree message.
|
void |
reset()
Reset the behaviour using the same MessageTemplate. |
void |
reset(MessageTemplate mt)
This method allows to change the MessageTemplate
that defines what messages this FIPARequestResponder will react to and reset the protocol. |
Methods inherited from class jade.core.behaviours.Behaviour |
actionWrapper,
block,
block,
getBehaviourName,
getDataStore,
handle,
isRunnable,
onEnd,
onStart,
restart,
root,
setAgent,
setBehaviourName,
setDataStore |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
REQUEST_KEY
public final java.lang.String REQUEST_KEY
- key to retrieve from the DataStore of the behaviour the ACLMessage
object sent by the initiator.
RESPONSE_KEY
public final java.lang.String RESPONSE_KEY
- key to retrieve from the DataStore of the behaviour the ACLMessage
object sent as a response to the initiator.
RESULT_NOTIFICATION_KEY
public final java.lang.String RESULT_NOTIFICATION_KEY
- key to retrieve from the DataStore of the behaviour the ACLMessage
object sent as a result notification to the initiator.
SimpleAchieveREResponder
public SimpleAchieveREResponder(Agent a,
MessageTemplate mt)
- Constructor of the behaviour that creates a new empty DataStore
- See Also:
SimpleAchieveREResponder(Agent a, MessageTemplate mt, DataStore store)
SimpleAchieveREResponder
public SimpleAchieveREResponder(Agent a,
MessageTemplate mt,
DataStore store)
- Constructor.
- Parameters:
a
- is the reference to the Agent objectmt
- is the MessageTemplate that must be used to match
the initiator message. Take care that
if mt is null every message is consumed by this protocol.store
- the DataStore for this protocol
createMessageTemplate
public static MessageTemplate createMessageTemplate(java.lang.String iprotocol)
- This static method can be used
to set the proper message Template (based on the interaction protocol
and the performative)
into the constructor of this behaviour.
- See Also:
FIPAProtocolNames
action
public final void action()
- Description copied from class: Behaviour
- Runs the behaviour. This abstract method must be implemented by
Behaviour
subclasses to perform ordinary behaviour
duty. An agent schedules its behaviours calling their
action()
method; since all the behaviours belonging
to the same agent are scheduled cooperatively, this method
must not enter in an endless loop and should return as
soon as possible to preserve agent responsiveness. To split a
long and slow task into smaller section, recursive behaviour
aggregation may be used.
- Overrides:
- action in class Behaviour
- Tags copied from class: Behaviour
- See Also:
CompositeBehaviour
prepareResponse
protected ACLMessage prepareResponse(ACLMessage request)
throws NotUnderstoodException,
RefuseException
- This method is called when the initiator's
message is received that matches the message template
passed in the constructor.
This default implementation return null which has
the effect of sending no reponse. Programmers should
override the method in case they need to react to this event.
- Parameters:
request
- the received message- Returns:
- the ACLMessage to be sent as a response (i.e. one of
agree, refuse, not-understood, inform
. Remind to
use the method createReply of the class ACLMessage in order
to create a good reply message - See Also:
ACLMessage.createReply()
prepareResultNotification
protected ACLMessage prepareResultNotification(ACLMessage request,
ACLMessage response)
throws FailureException
- This method is called after the response has been sent
and only if the response was an
agree
message.
This default implementation return null which has
the effect of sending no result notification. Programmers should
override the method in case they need to react to this event.
- Parameters:
request
- the received messageresponse
- the previously sent response message- Returns:
- the ACLMessage to be sent as a result notification (i.e. one of
inform, failure
. Remind to
use the method createReply of the class ACLMessage in order
to create a good reply message - See Also:
ACLMessage.createReply()
,
prepareResponse(ACLMessage)
reset
public void reset()
- Reset the behaviour using the same MessageTemplate.
- Overrides:
- reset in class SimpleBehaviour
reset
public void reset(MessageTemplate mt)
- This method allows to change the
MessageTemplate
that defines what messages this FIPARequestResponder will react to and reset the protocol.
done
public boolean done()
- This method checks whether this behaviour has finished or not.
- Overrides:
- done in class Behaviour
- Returns:
true
if this behaviour has completed its
task, false
otherwise.