org.almendra.janet.cas.node
Class AgentDispatcher

java.lang.Object
  extended by org.almendra.janet.cas.node.AgentDispatcher
All Implemented Interfaces:
java.rmi.Remote, INamedObject, IAgentDispatcher

public class AgentDispatcher
extends java.lang.Object
implements INamedObject, IAgentDispatcher

Author:
Oliver Plohmann

Field Summary
protected  java.util.Map agentsByName
           
protected  EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock lock
           
static java.lang.String LOG_EVENT_ILLEGAL_AGENT_NAME
           
static java.lang.String LOG_EVENT_NO_SUCH_AGENT
           
static java.lang.String LOG_EVENT_RECEIVED_COMMAND
           
protected  Logger logger
           
static java.lang.String LOGGER_OBJECT_NAME
           
protected  java.lang.String name
           
protected  Node node
           
 
Constructor Summary
protected AgentDispatcher()
           
  AgentDispatcher(Node node, Logger logger, java.lang.String nodeName)
           
 
Method Summary
 void accept(CommandEnvelope commandEnvelope)
           
protected  void acceptResponse(CommandEnvelope commandEnvelope, IAgent agent)
           
protected  void add(IAgent agent)
           
protected  boolean checkDestinationAgentName(java.lang.String destinationAgentName)
           
protected  int exists(LocalAgentPath path)
           
protected  boolean existsExactly(LocalAgentPath path)
           
protected  IAgent getAgent(java.lang.String destinationAgentName)
           
protected  java.util.List getAllAgentNames(java.lang.String applicationName, java.lang.String capabilityName)
           
 java.lang.String getName()
          All objects that have a user-defined name must implement this method.
 long getQueueSize(LocalAgentPath agentPath)
           
 boolean isLocalAndIsIdle(AgentPath agentPath)
           
protected  void logReceivedCommand(CommandEnvelope commandEnvelope)
           
protected  void monitorCommandReceived(CommandEnvelope env)
           
protected  void monitorCommandReceivedAndWaiting(CommandEnvelope env)
           
protected  java.util.List registeredLogEvents()
           
protected  IAgent remove(IAgent agent)
           
protected  IAgent remove(java.lang.String qualifiedAgentName)
           
protected  void setLogger(Logger parentLogger)
           
 void setName(java.lang.String name)
           
protected  void signalCommandArrived(CommandEnvelope commandEnvelope)
           
protected  void stopAndRemove(java.lang.String qualifiedAgentName)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOG_EVENT_ILLEGAL_AGENT_NAME

public static final java.lang.String LOG_EVENT_ILLEGAL_AGENT_NAME
See Also:
Constant Field Values

LOG_EVENT_NO_SUCH_AGENT

public static final java.lang.String LOG_EVENT_NO_SUCH_AGENT
See Also:
Constant Field Values

LOGGER_OBJECT_NAME

public static final java.lang.String LOGGER_OBJECT_NAME
See Also:
Constant Field Values

LOG_EVENT_RECEIVED_COMMAND

public static final java.lang.String LOG_EVENT_RECEIVED_COMMAND
See Also:
Constant Field Values

agentsByName

protected java.util.Map agentsByName

name

protected java.lang.String name

logger

protected Logger logger

node

protected Node node

lock

protected EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock lock
Constructor Detail

AgentDispatcher

protected AgentDispatcher()

AgentDispatcher

public AgentDispatcher(Node node,
                       Logger logger,
                       java.lang.String nodeName)
Method Detail

setLogger

protected void setLogger(Logger parentLogger)

registeredLogEvents

protected java.util.List registeredLogEvents()
Returns:

setName

public void setName(java.lang.String name)
Parameters:
name - The name to set.

accept

public void accept(CommandEnvelope commandEnvelope)
            throws java.lang.IllegalArgumentException
Specified by:
accept in interface IAgentDispatcher
Throws:
java.lang.IllegalArgumentException

signalCommandArrived

protected void signalCommandArrived(CommandEnvelope commandEnvelope)
Parameters:
commandEnvelope -

monitorCommandReceived

protected void monitorCommandReceived(CommandEnvelope env)
Parameters:
commandEnvelope -

monitorCommandReceivedAndWaiting

protected void monitorCommandReceivedAndWaiting(CommandEnvelope env)
Parameters:
commandEnvelope -

acceptResponse

protected void acceptResponse(CommandEnvelope commandEnvelope,
                              IAgent agent)
Parameters:
commandEnvelope -

logReceivedCommand

protected void logReceivedCommand(CommandEnvelope commandEnvelope)
Parameters:
commandEnvelope -

getAgent

protected IAgent getAgent(java.lang.String destinationAgentName)
                   throws java.lang.IllegalArgumentException
Throws:
java.lang.IllegalArgumentException

checkDestinationAgentName

protected boolean checkDestinationAgentName(java.lang.String destinationAgentName)
                                     throws java.lang.IllegalArgumentException
Parameters:
destinationAgentName -
Throws:
java.lang.IllegalArgumentException

add

protected void add(IAgent agent)
            throws java.lang.IllegalArgumentException
Throws:
java.lang.IllegalArgumentException

exists

protected int exists(LocalAgentPath path)

existsExactly

protected boolean existsExactly(LocalAgentPath path)

remove

protected IAgent remove(java.lang.String qualifiedAgentName)
                 throws java.lang.IllegalArgumentException
Throws:
java.lang.IllegalArgumentException

remove

protected IAgent remove(IAgent agent)
                 throws java.lang.IllegalArgumentException
Throws:
java.lang.IllegalArgumentException

stopAndRemove

protected void stopAndRemove(java.lang.String qualifiedAgentName)

getName

public java.lang.String getName()
Description copied from interface: INamedObject
All objects that have a user-defined name must implement this method.

Specified by:
getName in interface INamedObject
Specified by:
getName in interface IAgentDispatcher
Returns:
name

getAllAgentNames

protected java.util.List getAllAgentNames(java.lang.String applicationName,
                                          java.lang.String capabilityName)
Parameters:
string -
string2 -
Returns:

isLocalAndIsIdle

public boolean isLocalAndIsIdle(AgentPath agentPath)

getQueueSize

public long getQueueSize(LocalAgentPath agentPath)
                  throws java.rmi.RemoteException
Specified by:
getQueueSize in interface IAgentDispatcher
Returns:
Throws:
java.rmi.RemoteException