jade.domain
Class RequestFIPAServiceBehaviour

java.lang.Object
  |
  +--jade.core.behaviours.Behaviour
        |
        +--jade.core.behaviours.SimpleBehaviour
              |
              +--jade.proto.FipaRequestInitiatorBehaviour
                    |
                    +--jade.domain.RequestFIPAServiceBehaviour

public class RequestFIPAServiceBehaviour
extends FipaRequestInitiatorBehaviour

This class extends the FipaRequestIntiatorBehaviour in order to request an agent, e.g. DF or AMS to perform a specific action.
This class implements all the abstract method of the super classes, therefore the behaviour can be immediately added to an agent.
In some cases, it might be usefull to extend this class to override some of its methods and react to the received messages in an application-specific manner.
The class has two constructor. The first generic constructor can be used for all the action an agent can perform. In the case of a a search action the default search constraints are used.
The second constructor is specific for a search action and it allows to specify additional search constraints.

Author:
Fabio Bellifemine (CSELT S.p.A.)
See Also:
DFServiceCommunicator, AMSServiceCommunicator, Serialized Form

Inner Class Summary
static interface RequestFIPAServiceBehaviour.NotYetReady
          Exception class for timeouts.
 
Inner classes inherited from class jade.core.behaviours.Behaviour
Behaviour.RunnableChangedEvent
 
Fields inherited from class jade.proto.FipaRequestInitiatorBehaviour
finished
 
Fields inherited from class jade.core.behaviours.Behaviour
myAgent, myEvent, NOTIFY_DOWN, NOTIFY_UP, parent
 
Constructor Summary
RequestFIPAServiceBehaviour(Agent a, AID receiver, java.lang.String actionName, java.lang.Object agentDescription)
          Create a behaviour to request an agent to perform a specific action.
RequestFIPAServiceBehaviour(Agent a, AID receiver, java.lang.String actionName, java.lang.Object agentDescription, SearchConstraints constraints)
          Create a behaviour to request an agent to perform a specific action.
 
Method Summary
 ACLMessage getLastMsg()
          This public method allows to get the INFORM message received in the final state of this FIPA-Request protocol.
 java.util.List getSearchResult()
          This public method allows to get the results of a search operation.
protected  void handleAgree(ACLMessage reply)
          Method to handle agree replies.
protected  void handleFailure(ACLMessage reply)
          Method to handle failure replies.
protected  void handleInform(ACLMessage reply)
          Method to handle inform replies.
protected  void handleNotUnderstood(ACLMessage reply)
          Method to handle not-understood replies.
protected  void handleRefuse(ACLMessage reply)
          Method to handle refuse replies.
 
Methods inherited from class jade.proto.FipaRequestInitiatorBehaviour
action, done, getRequest, handleOtherMessages, handleTimeout, reset, reset, reset
 
Methods inherited from class jade.core.behaviours.Behaviour
block, block, handle, isRunnable, restart, root
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RequestFIPAServiceBehaviour

public RequestFIPAServiceBehaviour(Agent a,
                                   AID receiver,
                                   java.lang.String actionName,
                                   java.lang.Object agentDescription,
                                   SearchConstraints constraints)
                            throws FIPAException
Create a behaviour to request an agent to perform a specific action. Using this constructor, is possible to pass all information necessary to request a search operation.
Parameters:
a - The agent this behaviour belongs to, i.e. the agent who is interested in the search result.
receiver - The agent who will be requested to perform the action.
agentDescription - An agent descriptor used according to the action required.
constraints - The search contraints for the search action.
Throws:
FIPAException - A suitable exception can be thrown when the method locally discovers that the passed parameters are not valid.
See Also:
SearchConstraints

RequestFIPAServiceBehaviour

public RequestFIPAServiceBehaviour(Agent a,
                                   AID receiver,
                                   java.lang.String actionName,
                                   java.lang.Object agentDescription)
                            throws FIPAException
Create a behaviour to request an agent to perform a specific action. The default search constraints are used.
Parameters:
a - The agent this behaviour belongs to, i.e the agent who is interested in the action.
dfName - The DF who will perform the action.
dfAction - The action requested to the DF.
dfd - An agent descriptor that will be use according to the action required to the DF.
See Also:
RequestFIPAServiceBehaviour(Agent a, AID receiver, String actionName, Object agentDescription, SearchConstraints constraints)
Method Detail

handleNotUnderstood

protected void handleNotUnderstood(ACLMessage reply)
Method to handle not-understood replies.
Parameters:
reply - The actual ACL message received. It is of not-understood type and matches the conversation template.
Overrides:
handleNotUnderstood in class FipaRequestInitiatorBehaviour

handleRefuse

protected void handleRefuse(ACLMessage reply)
Method to handle refuse replies.
Parameters:
reply - The actual ACL message received. It is of refuse type and matches the conversation template.
Overrides:
handleRefuse in class FipaRequestInitiatorBehaviour

handleAgree

protected void handleAgree(ACLMessage reply)
Method to handle agree replies.
Parameters:
reply - The actual ACL message received. It is of agree type and matches the conversation template.
Overrides:
handleAgree in class FipaRequestInitiatorBehaviour

handleFailure

protected void handleFailure(ACLMessage reply)
Method to handle failure replies.
Parameters:
reply - The actual ACL message received. It is of failure type and matches the conversation template.
Overrides:
handleFailure in class FipaRequestInitiatorBehaviour

handleInform

protected void handleInform(ACLMessage reply)
Method to handle inform replies.
Parameters:
reply - The actual ACL message received. It is of inform type and matches the conversation template.
Overrides:
handleInform in class FipaRequestInitiatorBehaviour

getLastMsg

public ACLMessage getLastMsg()
                      throws FIPAException,
                             RequestFIPAServiceBehaviour.NotYetReady
This public method allows to get the INFORM message received in the final state of this FIPA-Request protocol.
Returns:
the ACLMessage received
Throws:
FIPAException - A suitable exception can be thrown when the protocol was finished with a FAILURE/REFUSE or NOT-UNDERSTOOD performative.
RequestFIPAServiceBehaviour.NotYetReady - is thrown if the protocol is not yet finished.

getSearchResult

public java.util.List getSearchResult()
                               throws FIPAException,
                                      RequestFIPAServiceBehaviour.NotYetReady
This public method allows to get the results of a search operation.
Returns:
the List of Objects received an a result of the search.
Throws:
FIPAException - A suitable exception can be thrown when the protocol was finished with a FAILURE/REFUSE or NOT-UNDERSTOOD performative.
RequestFIPAServiceBehaviour.NotYetReady - is thrown if the protocol is not yet finished.