ibspan.tss.messaging
Class ActionDispatcher

java.lang.Object
  extended by jade.core.behaviours.Behaviour
      extended by jade.core.behaviours.CompositeBehaviour
          extended by jade.core.behaviours.SerialBehaviour
              extended by jade.core.behaviours.FSMBehaviour
                  extended by jade.proto.states.HandlerSelector
                      extended by ibspan.tss.messaging.SafeHandlerSelector
                          extended by ibspan.tss.messaging.ActionDispatcher
All Implemented Interfaces:
Serializable

public class ActionDispatcher
extends SafeHandlerSelector

Incoming request usually contains Action object to be served. This class extends extends HandlerSelector in such a way the key for selecting a handler represent the name of action class. For example, the incoming request with the following content:

     (action (agent-identifier :name sha-1)
       (VTA-transform-view
       ........
       )
     )
 
results in returning the following key: ibspan.tss.messaging.ontology.VTA_transform_view class name reflecting VTA-transform-view ontological concept.

Additionally it provides SafeHandlerSelector.registerErrorHandler(Behaviour) method for registering behaviour, which handles with situation in which no behaviour for the given request is registered or an error occured during dispatching.

Author:
Maciej Gawinecki
See Also:
Action, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class jade.core.behaviours.Behaviour
Behaviour.RunnableChangedEvent
 
Field Summary
 
Fields inherited from class jade.proto.states.HandlerSelector
SELECTION_NOK, SELECTION_OK
 
Fields inherited from class jade.core.behaviours.FSMBehaviour
currentName, lastStates, previousName
 
Fields inherited from class jade.core.behaviours.CompositeBehaviour
currentExecuted
 
Fields inherited from class jade.core.behaviours.Behaviour
myAgent, myEvent, NOTIFY_DOWN, NOTIFY_UP, parent, STATE_BLOCKED, STATE_READY, STATE_RUNNING
 
Constructor Summary
ActionDispatcher(Agent a, DataStore s, Object accessKey, Object actKey)
          Constructs action dispatcher.
 
Method Summary
protected  Object getSelectionKey_internal(Object o)
          Subclasses must provide a concrete implementation for this method.
 
Methods inherited from class ibspan.tss.messaging.SafeHandlerSelector
getSelectionKey, registerErrorHandler
 
Methods inherited from class jade.proto.states.HandlerSelector
registerHandler
 
Methods inherited from class jade.core.behaviours.FSMBehaviour
checkTermination, deregisterState, forceTransitionTo, getChildren, getCurrent, getLastExitValue, getName, getPrevious, getState, handleInconsistentFSM, handleStateEntered, onEnd, registerDefaultTransition, registerDefaultTransition, registerFirstState, registerLastState, registerState, registerTransition, registerTransition, reset, resetStates, scheduleFirst, scheduleNext
 
Methods inherited from class jade.core.behaviours.SerialBehaviour
handle
 
Methods inherited from class jade.core.behaviours.CompositeBehaviour
action, block, done, registerAsChild, resetChildren, restart, setAgent
 
Methods inherited from class jade.core.behaviours.Behaviour
actionWrapper, block, getBehaviourName, getDataStore, getExecutionState, getParent, isRunnable, onStart, root, setBehaviourName, setDataStore, setExecutionState
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ActionDispatcher

public ActionDispatcher(Agent a,
                        DataStore s,
                        Object accessKey,
                        Object actKey)
Constructs action dispatcher.

Parameters:
a - is a reference to the Agent object.
ds - is DataStore which will be used locally.
accessKey - is the key to get the proper object from the DataStore, this is the object that will be later passed as argument to the method getSelectionKey.
actKey - is the key in the DataStore to access Action from current request, extracted by this action dispatcher.
See Also:
SafeHandlerSelector.getSelectionKey(Object)
Method Detail

getSelectionKey_internal

protected final Object getSelectionKey_internal(Object o)
Description copied from class: SafeHandlerSelector
Subclasses must provide a concrete implementation for this method. It must return the key to which the handler was bound.

Specified by:
getSelectionKey_internal in class SafeHandlerSelector
Returns:
the key to which the handler was bound