sajas.proto
Class SSIteratedAchieveREResponder
java.lang.Object
sajas.proto.SSIteratedAchieveREResponder All Implemented Interfaces:
-
jade.util.leap.Serializable, Serializable
public class SSIteratedAchieveREResponder
Note: this class has been re-implemented to redirect the use of the agent, behaviour and protocol classes to SAJaS versions.
Author:
-
hlc
See Also:
-
jade.proto.SSIteratedAchieveREResponder
Field Summary |
String |
CANCEL_KEY Key to retrieve from the DataStore of the behaviour the last received CANCEL ACLMessage |
protected static String |
CHECK_IN_SEQ |
protected static String |
DUMMY_FINAL |
static String |
HANDLE_CANCEL |
protected static String |
HANDLE_OUT_OF_SEQUENCE |
static String |
HANDLE_REQUEST |
String |
INITIATION_KEY Key to retrieve from the DataStore of the behaviour the initiation ACLMessage that triggered this responder session |
protected static String |
RECEIVE_NEXT |
String |
RECEIVED_KEY Key to retrieve from the DataStore of the behaviour the last received ACLMessage |
String |
REPLY_KEY Key to set into the DataStore of the behaviour the new ACLMessage to be sent back to the initiator as a reply. |
String |
REQUEST_KEY Key to retrieve from the DataStore of the behaviour the last received REQUEST ACLMessage |
protected static String |
SEND_REPLY |
Constructor Summary |
SSIteratedAchieveREResponder(Agent a, jade.lang.acl.ACLMessage request) Construct a SSIteratedAchieveREResponder that is activated by the reception of a given initiation REQUEST message. |
SSIteratedAchieveREResponder(Agent a, jade.lang.acl.ACLMessage request, DataStore store) Construct a SSIteratedAchieveREResponder that is activated by the reception of a given initiation REQUEST message and uses a given DataStore. |
Method Summary |
protected void |
afterReply(jade.lang.acl.ACLMessage reply) This method can be redefined by protocol specific implementations to update the status of the protocol just after a reply has been sent. |
protected void |
beforeReply(jade.lang.acl.ACLMessage reply) This method can be redefined by protocol specific implementations to customize a reply that is going to be sent back to the initiator. |
protected boolean |
checkInSequence(jade.lang.acl.ACLMessage received) Check whether a received message complies with the protocol rules. |
void |
closeSessionOnNextReply() Close the ongoing session, as soon as the next INFORM will be sent back to the initiator without the need for an explicit CANCEL message. |
protected void |
handleCancel(jade.lang.acl.ACLMessage cancel) This method is called when a CANCEL message is received from the initiator. |
protected void |
handleOutOfSequence(jade.lang.acl.ACLMessage msg) This method is called whenever a message is received that does not comply to the protocol rules. |
protected jade.lang.acl.ACLMessage |
handleRequest(jade.lang.acl.ACLMessage request) This method is called to handle the initial REQUEST message and then again whenever a REQUEST message is received. |
void |
onStart() This method is just an empty placeholders for subclasses. |
protected void |
registerDSState(Behaviour b, String name) Utility method to register a behaviour in a state of the protocol and set the DataStore appropriately |
void |
registerHandleCancel(Behaviour b) This method allows to register a user defined Behaviour in the HANDLE_CANCEL state. |
void |
registerHandleOutOfSequence(Behaviour b) This method allows to register a user defined Behaviour in the HANDLE_OUT_OF_SEQ state. |
void |
registerHandleRequest(Behaviour b) This method allows to register a user defined Behaviour in the HANDLE_REQUEST state. |
protected void |
reinit() Re-initialize the internal state without performing a complete reset. |
void |
reset() Reset this protocol behaviour |
void |
sendAgree(jade.lang.acl.ACLMessage agree) Utility method to send an optional AGREE message back to the initiator ensuring that all protocol fields are properly set. |
protected void |
sessionTerminated() This method can be redefined by protocol specific implementations to take proper actions after the completion of the current protocol session. |
Methods inherited from class sajas.core.behaviours.FSMBehaviour |
checkTermination, deregisterDefaultTransition, deregisterState, deregisterTransition, forceTransitionTo, getChildren, getCurrent, getLastExitValue, getName, getPrevious, getState, handleInconsistentFSM, handleStateEntered, hasDefaultTransition, onEnd, registerDefaultTransition, registerDefaultTransition, registerFirstState, registerLastState, registerState, registerTransition, registerTransition, resetStates, scheduleFirst, scheduleNext, stringifyTransitionTable |
Methods inherited from class sajas.core.behaviours.Behaviour |
actionWrapper, block, block, getAgent, getBehaviourName, getDataStore, getExecutionState, getParent, getRestartCounter, isRunnable, restart, root, setBehaviourName, setDataStore, setExecutionState |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
CANCEL_KEY
public final String CANCEL_KEY
-
Key to retrieve from the DataStore of the behaviour the last received
CANCEL ACLMessage
CHECK_IN_SEQ
protected static final String CHECK_IN_SEQ
-
See Also:
-
DUMMY_FINAL
protected static final String DUMMY_FINAL
-
See Also:
-
HANDLE_CANCEL
public static final String HANDLE_CANCEL
-
See Also:
-
HANDLE_OUT_OF_SEQUENCE
protected static final String HANDLE_OUT_OF_SEQUENCE
-
See Also:
-
HANDLE_REQUEST
public static final String HANDLE_REQUEST
-
See Also:
-
INITIATION_KEY
public final String INITIATION_KEY
-
Key to retrieve from the DataStore of the behaviour the initiation
ACLMessage that triggered this responder session
RECEIVE_NEXT
protected static final String RECEIVE_NEXT
-
See Also:
-
RECEIVED_KEY
public final String RECEIVED_KEY
-
Key to retrieve from the DataStore of the behaviour the last received
ACLMessage
REPLY_KEY
public final String REPLY_KEY
-
Key to set into the DataStore of the behaviour the new ACLMessage
to be sent back to the initiator as a reply.
REQUEST_KEY
public final String REQUEST_KEY
-
Key to retrieve from the DataStore of the behaviour the last received
REQUEST ACLMessage
SEND_REPLY
protected static final String SEND_REPLY
-
See Also:
-
SSIteratedAchieveREResponder
public SSIteratedAchieveREResponder(Agent a, jade.lang.acl.ACLMessage request) -
Construct a SSIteratedAchieveREResponder that is activated
by the reception of a given initiation REQUEST message.
SSIteratedAchieveREResponder
public SSIteratedAchieveREResponder(Agent a, jade.lang.acl.ACLMessage request, DataStore store) -
Construct a SSIteratedAchieveREResponder that is activated
by the reception of a given initiation REQUEST message and uses
a given DataStore.
handleRequest
protected jade.lang.acl.ACLMessage handleRequest(jade.lang.acl.ACLMessage request)
throws jade.domain.FIPAAgentManagement.RefuseException,
jade.domain.FIPAAgentManagement.FailureException,
jade.domain.FIPAAgentManagement.NotUnderstoodException
-
This method is called to handle the initial REQUEST message and
then again whenever a REQUEST message is received.
This default implementation does nothing and returns null.
Programmers have to override it to react to this event.
Parameters:
-
request - the REQUEST message to handle.
Returns:
-
the reply message to be sent back to the initiator. Returning
a message defferent from INFORM (or returning null) terminates the protocol.
An optional AGREE message can be sent back to the initiator by
calling the sendAgree()
method.
Throws:
-
jade.domain.FIPAAgentManagement.RefuseException - if the REQUEST is refused. Throwing a
RefuseException has the same effect as returning a REFUSE message,
but automatically manages the :content
slot.
-
jade.domain.FIPAAgentManagement.FailureException - if there is an error serving the REQUEST.
Throwing a FailureException has the same effect as returning a FAILURE
message, but automatically manages the :content
slot.
-
jade.domain.FIPAAgentManagement.NotUnderstoodException - if the REQUEST content is not undrerstood.
Throwing a NotUnderstoodException has the same effect as returning a NOT_UNDERSTOOD
message, but automatically manages the :content
slot.
handleCancel
protected void handleCancel(jade.lang.acl.ACLMessage cancel)
-
This method is called when a CANCEL message is received from the
initiator.
This default implementation does nothing.
Programmers may override it to react to this event.
Parameters:
-
cancel - the received CANCEL message or null if no
further REQUEST message is received from the initiator within the timeout
specified in the :reply-by
slot of the last INFORM message.
registerHandleRequest
public void registerHandleRequest(Behaviour b) -
This method allows to register a user defined Behaviour
in the HANDLE_REQUEST state.
This behaviour would override the homonymous method.
This method also sets the
data store of the registered Behaviour
to the
DataStore of this current behaviour.
The registered behaviour can retrieve the received REQUEST
message from the datastore at the REQUEST_KEY
key.
It is responsibility of the registered behaviour to put the
reply to be sent back to the initiator into the datastore at the
REPLY_KEY
key. Putting a message defferent from INFORM
(or null) terminates the protocol.
An optional AGREE message can be sent back to the initiator by
calling the sendAgree()
method.
Parameters:
-
b - the Behaviour that will handle this state
registerHandleCancel
public void registerHandleCancel(Behaviour b) -
This method allows to register a user defined Behaviour
in the HANDLE_CANCEL state.
This behaviour would override the homonymous method.
This method also sets the
data store of the registered Behaviour
to the
DataStore of this current behaviour.
The registered behaviour can retrieve the CANCEL
message received from the datastore at the CANCEL_KEY
key.
Parameters:
-
b - the Behaviour that will handle this state
sendAgree
public void sendAgree(jade.lang.acl.ACLMessage agree)
-
Utility method to send an optional AGREE message back to the
initiator ensuring that all protocol fields are properly set.
closeSessionOnNextReply
public void closeSessionOnNextReply()
-
Close the ongoing session, as soon as the next INFORM will
be sent back to the initiator without the need for an explicit
CANCEL message. The initiator will be able to detect that the
session has been closed by calling the
isSessionTerminated()
method of the
SSIteratedAchieveREInitiator
class.
reset
public void reset()
-
Reset this protocol behaviour
checkInSequence
protected boolean checkInSequence(jade.lang.acl.ACLMessage received)
-
Check whether a received message complies with the protocol rules.
beforeReply
protected void beforeReply(jade.lang.acl.ACLMessage reply)
-
This method can be redefined by protocol specific implementations
to customize a reply that is going to be sent back to the initiator.
This default implementation does nothing.
onStart
public void onStart()
-
This method is just an empty placeholders for subclasses. It is
executed just once before starting behaviour execution.
Therefore, it acts as a prolog to the task
represented by this Behaviour
.
Overrides:
-
handleOutOfSequence
protected void handleOutOfSequence(jade.lang.acl.ACLMessage msg)
-
This method is called whenever a message is received that does
not comply to the protocol rules.
This default implementation does nothing.
Programmers may override it in case they need to react to this event.
Parameters:
-
msg - the received out-of-sequence message.
registerHandleOutOfSequence
public void registerHandleOutOfSequence(Behaviour b) -
This method allows to register a user defined Behaviour
in the HANDLE_OUT_OF_SEQ state.
This behaviour would override the homonymous method.
This method also sets the
data store of the registered Behaviour
to the
DataStore of this current behaviour.
The registered behaviour can retrieve
the out of sequence
ACLMessage object received
from the datastore at the RECEIVED_KEY
key.
Parameters:
-
b - the Behaviour that will handle this state
reinit
protected void reinit()
-
Re-initialize the internal state without performing a complete reset.
afterReply
protected void afterReply(jade.lang.acl.ACLMessage reply)
-
This method can be redefined by protocol specific implementations
to update the status of the protocol just after a reply has been sent.
This default implementation does nothing.
sessionTerminated
protected void sessionTerminated()
-
This method can be redefined by protocol specific implementations
to take proper actions after the completion of the current protocol
session.
registerDSState
protected void registerDSState(Behaviour b, String name) -
Utility method to register a behaviour in a state of the
protocol and set the DataStore appropriately
DocFlex/Doclet is both a multi-format Javadoc doclet and a free edition of DocFlex/Javadoc, which is a template-driven programming tool for rapid development of any Javadoc-based Java API documentation generators (i.e. doclets). If you need to customize your Javadoc without writing a full-blown doclet from scratch, DocFlex/Javadoc may be the only tool able to help you! Find out more at www.docflex.com