ActionT
- The class of the action to be executedResultT
- The class of the result or Void if the action is not expected to return any resultpublic class ActionExecutor<ActionT extends AgentAction,ResultT> extends BaseInitiator
Modifier and Type | Field and Description |
---|---|
protected ActionT |
action |
protected AID |
actor |
protected java.lang.String |
conversationId |
protected java.lang.String |
language |
protected Ontology |
ontology |
protected ResultT |
result |
protected long |
timeout |
conversations, myLogger, outcome
ALL_REQUESTS_KEY, ALL_RESPONSES_KEY, ALL_RESULT_NOTIFICATIONS_KEY, CHECK_AGAIN, HANDLE_AGREE, HANDLE_ALL_RESPONSES, HANDLE_ALL_RESULT_NOTIFICATIONS, HANDLE_INFORM, HANDLE_REFUSE, REPLY_KEY, REQUEST_KEY
currentName, lastStates
Constructor and Description |
---|
ActionExecutor(ActionT action,
Ontology ontology,
AID actor) |
Modifier and Type | Method and Description |
---|---|
protected java.lang.String |
createConvId(java.util.Vector msgs)
Create a new conversation identifier to begin a new
interaction.
|
protected ACLMessage |
createInitiation()
Concrete subclasses are expected to implement this method to create the initiation message.
|
protected ResultT |
extractResult(Result r) |
AID |
getActualActor() |
ResultT |
getResult() |
void |
handleInform(ACLMessage inform)
This method is called every time a
inform
message is received, which is not out-of-sequence according
to the protocol rules. |
protected void |
handleOutOfSequence(ACLMessage msg)
This method is called every time a
message is received, which is out-of-sequence according
to the protocol rules.
|
void |
onStart()
Override the onStart() method to initialize the vectors that
will keep all the replies in the data store.
|
void |
registerHandleFailure(Behaviour b)
This method allows to register a user defined
Behaviour
in the HANDLE_FAILURE state. |
void |
registerHandleNotUnderstood(Behaviour b)
This method allows to register a user defined
Behaviour
in the HANDLE_NOT_UNDERSTOOD state. |
void |
registerHandleOutOfSequence(Behaviour b)
This method allows to register a user defined
Behaviour
in the HANDLE_OUT_OF_SEQ state. |
void |
reset()
reset this behaviour by putting a null ACLMessage as message
to be sent
|
void |
reset(ACLMessage msg)
reset this behaviour
|
protected AID |
retrieveActor() |
void |
setAction(ActionT action) |
void |
setActor(AID actor) |
void |
setConversationId(java.lang.String conversationId) |
void |
setDataStore(DataStore ds)
Override the setDataStore() method to propagate this
setting to all children.
|
void |
setLanguage(java.lang.String language) |
void |
setOntology(Ontology ontology) |
void |
setTimeout(long timeout) |
checkLanguage, checkOntology, getErrorMsg, getExitCode, getOutcome, getTargetDescription, handleAllResultNotifications, handleFailure, handleNotUnderstood, handleRefuse, handleTimeout, onEnd, prepareRequests, setActiveConversations
getSession, handleAgree, handleAllResponses, registerHandleAgree, registerHandleAllResponses, registerHandleAllResultNotifications, registerHandleInform, registerHandleRefuse, registerPrepareRequests, reinit
checkTermination, deregisterDefaultTransition, deregisterState, deregisterTransition, forceTransitionTo, getChildren, getCurrent, getLastExitValue, getName, getPrevious, getState, handleInconsistentFSM, handleStateEntered, hasDefaultTransition, registerDefaultTransition, registerDefaultTransition, registerFirstState, registerLastState, registerState, registerTransition, registerTransition, resetStates, scheduleFirst, scheduleNext, stringifyTransitionTable
action, done, resetChildren, setAgent
block, block, getAgent, getBehaviourName, getDataStore, getParent, isRunnable, restart, root, setBehaviourName
protected ActionT extends AgentAction action
protected ResultT result
protected AID actor
protected java.lang.String language
protected Ontology ontology
protected long timeout
protected java.lang.String conversationId
public void setAction(ActionT action)
public void setActor(AID actor)
public void setOntology(Ontology ontology)
public void setLanguage(java.lang.String language)
public void setTimeout(long timeout)
public void setConversationId(java.lang.String conversationId)
public ResultT getResult()
public AID getActualActor()
protected AID retrieveActor() throws FIPAException
FIPAException
protected ACLMessage createInitiation()
BaseInitiator
createInitiation
in class BaseInitiator
public void handleInform(ACLMessage inform)
AchieveREInitiator
inform
message is received, which is not out-of-sequence according
to the protocol rules.
This default implementation does nothing; programmers might
wish to override the method in case they need to react to this event.handleInform
in class AchieveREInitiator
inform
- the received inform messageprotected void handleOutOfSequence(ACLMessage msg)
msg
- the received messagepublic void registerHandleNotUnderstood(Behaviour b)
Behaviour
in the HANDLE_NOT_UNDERSTOOD 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.
The registered behaviour can retrieve
the not-understood
ACLMessage object received
from the datastore at the REPLY_KEY
key.b
- the Behaviour that will handle this statepublic void registerHandleFailure(Behaviour b)
Behaviour
in the HANDLE_FAILURE 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.
The registered behaviour can retrieve
the failure
ACLMessage object received
from the datastore at the REPLY_KEY
key.b
- the Behaviour that will handle this statepublic void registerHandleOutOfSequence(Behaviour b)
Behaviour
in the HANDLE_OUT_OF_SEQ 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.
The registered behaviour can retrieve
the out of sequence
ACLMessage object received
from the datastore at the REPLY_KEY
key.b
- the Behaviour that will handle this statepublic void reset()
reset
in class FSMBehaviour
public void reset(ACLMessage msg)
msg
- is the ACLMessage to be sentpublic void onStart()
public void setDataStore(DataStore ds)
setDataStore
in class Behaviour
ds
- the DataStore
that this Behaviour
will use as its private data storeprotected java.lang.String createConvId(java.util.Vector msgs)
msgs
- A vector of ACL messages. If the first one has a
non-empty :conversation-id
slot, its value is
used, else a new conversation identifier is generated.