jade.proto
Class AchieveREResponder
java.lang.Object
|
+--jade.core.behaviours.Behaviour
|
+--jade.core.behaviours.CompositeBehaviour
|
+--jade.core.behaviours.FSMBehaviour
|
+--jade.proto.AchieveREResponder
- public class AchieveREResponder
- extends FSMBehaviour
- 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.
- Version:
- $Date: 2003/03/12 14:53:39 $ $Revision: 1.9 $
- Author:
- Giovanni Caire - TILab, Fabio Bellifemine - TILab, Tiziana Trucco - TILab
- See Also:
AchieveREInitiator
, 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 |
Methods inherited from class jade.core.behaviours.FSMBehaviour |
checkTermination,
forceTransitionTo,
getChildren,
getCurrent,
getLastExitValue,
getName,
getState,
handle,
onEnd,
registerDefaultTransition,
registerDefaultTransition,
registerFirstState,
registerLastState,
registerState,
registerTransition,
registerTransition,
resetStates,
scheduleFirst,
scheduleNext |
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.
AchieveREResponder
public AchieveREResponder(Agent a,
MessageTemplate mt)
- Constructor of the behaviour that creates a new empty DataStore
- See Also:
AchieveREResponder(Agent a, MessageTemplate mt, DataStore store)
AchieveREResponder
public AchieveREResponder(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:
FIPANames.InteractionProtocol
reset
public void reset()
- Reset this behaviour.
- Overrides:
- reset in class FSMBehaviour
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.
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)
registerPrepareResponse
public void registerPrepareResponse(Behaviour b)
- This method allows to register a user defined
Behaviour
in the PREPARE_RESPONSE state.
This behaviour would override the homonymous method.
This method also set the
data store of the registered Behaviour
to the
DataStore of this current behaviour.
It is responsibility of the registered behaviour to put the
response to be sent into the datastore at the RESPONSE_KEY
key.
- Parameters:
b
- the Behaviour that will handle this state
registerPrepareResultNotification
public void registerPrepareResultNotification(Behaviour b)
- This method allows to register a user defined
Behaviour
in the PREPARE_RESULT_NOTIFICATION state.
This behaviour would override the homonymous method.
This method also set the
data store of the registered Behaviour
to the
DataStore of this current behaviour.
It is responsibility of the registered behaviour to put the
result notification message to be sent into the datastore at the
RESULT_NOTIFICATION_KEY
key.
- Parameters:
b
- the Behaviour that will handle this state