Package jade.proto

Class SSContractNetResponder

    • Field Detail

      • CFP_KEY

        public final String CFP_KEY
        Key to retrieve from the DataStore of the behaviour the last received CFP ACLMessage
      • PROPOSE_KEY

        public final String PROPOSE_KEY
        Key to retrieve from the DataStore of the behaviour the last sent PROPOSE ACLMessage
      • ACCEPT_PROPOSAL_KEY

        public final String ACCEPT_PROPOSAL_KEY
        Key to retrieve from the DataStore of the behaviour the last received ACCEPT_PROPOSAL ACLMessage
      • REJECT_PROPOSAL_KEY

        public final String REJECT_PROPOSAL_KEY
        Key to retrieve from the DataStore of the behaviour the last received REJECT_PROPOSAL ACLMessage
      • INITIATION_KEY

        public final String INITIATION_KEY
        Key to retrieve from the DataStore of the behaviour the initiation ACLMessage that triggered this responder session
      • 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.
    • Constructor Detail

      • SSContractNetResponder

        public SSContractNetResponder​(Agent a,
                                      ACLMessage cfp)
        Construct a SSContractNetResponder that is activated by the reception of a given initiation CFP message.
      • SSContractNetResponder

        public SSContractNetResponder​(Agent a,
                                      ACLMessage cfp,
                                      DataStore store)
        Construct a SSContractNetResponder that is activated by the reception of a given initiation CFP message and uses a given DataStore.
    • Method Detail

      • handleCfp

        protected ACLMessage handleCfp​(ACLMessage cfp)
                                throws RefuseException,
                                       FailureException,
                                       NotUnderstoodException
        This method is called to handle the initial CFP message. This default implementation does nothing and returns null. Programmers have to override it to react to this event.
        Parameters:
        cfp - the initial CFP message to handle.
        Returns:
        the reply message to be sent back to the initiator. Returning a message different than PROPOSE (or returning null) terminates the protocol.
        Throws:
        RefuseException - if the CFP is refused. Throwing a RefuseException has the same effect as returning a REFUSE message, but automatically manages the :content slot.
        FailureException - if there is an error serving the CFP. Throwing a FailureException has the same effect as returning a FAILURE message, but automatically manages the :content slot.
        NotUnderstoodException - if the CFP content is not understood. Throwing a NotUnderstoodException has the same effect as returning a NOT_UNDERSTOOD message, but automatically manages the :content slot.
      • handleAcceptProposal

        protected ACLMessage handleAcceptProposal​(ACLMessage cfp,
                                                  ACLMessage propose,
                                                  ACLMessage accept)
                                           throws FailureException
        This method is called when an ACCEPT_PROPOSAL message is received from the initiator. This default implementation does nothing and returns null. Programmers have to override it to react to this event.
        Parameters:
        cfp - the initial CFP message.
        propose - the PROPOSE message sent back as reply to the initial CFP message.
        accept - the received ACCEPT_PROPOSAL message.
        Returns:
        the reply message to be sent back to the initiator.
        Throws:
        FailureException - if there is an error serving the ACCEPT_PROPOSAL. Throwing a FailureException has the same effect as returning a FAILURE message, but automatically manages the :content slot.
      • handleRejectProposal

        protected void handleRejectProposal​(ACLMessage cfp,
                                            ACLMessage propose,
                                            ACLMessage reject)
        This method is called when a REJECT_PROPOSAL message is received from the initiator. This default implementation does nothing. Programmers may override it to react to this event.
        Parameters:
        cfp - the initial CFP message.
        propose - the PROPOSE message sent back as reply to the initial CFP message.
        reject - the received REJECT_PROPOSAL message or null if no acceptance message is received from the initiator within the timeout specified in the :reply-by slot of the PROPOSE message.
      • handleOutOfSequence

        protected void handleOutOfSequence​(ACLMessage cfp,
                                           ACLMessage propose,
                                           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:
        cfp - the initial CFP message.
        propose - the PROPOSE message sent back as reply to the initial CFP message.
        msg - the received out-of-sequence message.
      • registerHandleCfp

        public void registerHandleCfp​(Behaviour b)
        This method allows to register a user defined Behaviour in the HANDLE_CFP 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 initial CFP message from the datastore at the CFP_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 PROPOSE (or putting no message) terminates the protocol.
        Parameters:
        b - the Behaviour that will handle this state
      • registerHandleAcceptProposal

        public void registerHandleAcceptProposal​(Behaviour b)
        This method allows to register a user defined Behaviour in the HANDLE_ACCEPT_PROPOSAL 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 ACCEPT_PROPOSAL message from the datastore at the ACCEPT_PROPOSAL_KEY key, the initial CFP message at the CFP_KEY and the previously sent PROPOSE message at the PROPOSE_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.
        Parameters:
        b - the Behaviour that will handle this state
      • registerHandleRejectProposal

        public void registerHandleRejectProposal​(Behaviour b)
        This method allows to register a user defined Behaviour in the HANDLE_REJECT_PROPOSAL 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 REJECT_PROPOSAL message from the datastore at the REJECT_PROPOSAL_KEY key, the initial CFP message at the CFP_KEY and the previously sent PROPOSE message at the PROPOSE_KEY.
        Parameters:
        b - the Behaviour that will handle this state
      • reinit

        protected void reinit()
        Re-initialize the internal state without performing a complete reset.
      • handleOutOfSequence

        protected void handleOutOfSequence​(ACLMessage msg)
        Redefine this method to call the overloaded version with 3 parameters.
        Parameters:
        msg - the received out-of-sequence message.
      • checkInSequence

        protected boolean checkInSequence​(ACLMessage received)
        Check whether a received message complies with the protocol rules.
      • beforeReply

        protected void beforeReply​(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.
      • afterReply

        protected void afterReply​(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.
      • onStart

        public void onStart()
        Description copied from class: Behaviour
        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:
        onStart in class Behaviour
      • 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
      • reset

        public void reset()
        Reset this behaviour.
        Overrides:
        reset in class FSMBehaviour
      • 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