madkit.simulation.activators
Class TurboMethodActivator

java.lang.Object
  extended by madkit.kernel.Activator<AbstractAgent>
      extended by madkit.simulation.activators.TurboMethodActivator

public class TurboMethodActivator
extends Activator<AbstractAgent>

Optimized version of the SingleMethodActivator can only invoke a simple method with no parameters

Version:
2.0
Author:
Fabien Michel

Field Summary
protected  java.util.Map<AbstractAgent,java.lang.reflect.Method> methods
          methods maps an agent to its corresponding Method object for runtime invocation
 
Constructor Summary
TurboMethodActivator(java.lang.String methodName, java.lang.String groupName, java.lang.String roleName)
           
TurboMethodActivator(java.lang.String methodName, java.lang.String communityName, java.lang.String groupName, java.lang.String roleName)
           
 
Method Summary
 void execute()
          this method can be overridden and used to define one behavior for the activator.
 A getAgentNb(int nb)
           
 java.util.ListIterator<A> getAgentsIterator()
          Deprecated. as of MadKit 4.3 : simply type getCurrentAgentsList().listIterator()
 java.lang.String getCommunity()
           
 java.util.List<A> getCurrentAgentsList()
           
 java.lang.String getGroup()
           
 java.lang.String getMethodName()
           
 java.lang.String getRole()
           
 java.util.List<A> getShuffledList()
           
 void initialize()
          this method is automatically invoked the first time the agents variable is updated so it's a good place to initialize activator's parameters like in the SingleMethodActivator for exemple
 int numberOfAgents()
           
 void setDebugOff(boolean b)
           
 java.lang.String toString()
           
 void update(AbstractAgent theAgent, boolean added)
          this method is automatically invoked when changes occur on the considered group/role couple
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

methods

protected final java.util.Map<AbstractAgent,java.lang.reflect.Method> methods
methods maps an agent to its corresponding Method object for runtime invocation

Constructor Detail

TurboMethodActivator

public TurboMethodActivator(java.lang.String methodName,
                            java.lang.String groupName,
                            java.lang.String roleName)

TurboMethodActivator

public TurboMethodActivator(java.lang.String methodName,
                            java.lang.String communityName,
                            java.lang.String groupName,
                            java.lang.String roleName)
Method Detail

getMethodName

public java.lang.String getMethodName()

initialize

public void initialize()
Description copied from class: Activator
this method is automatically invoked the first time the agents variable is updated so it's a good place to initialize activator's parameters like in the SingleMethodActivator for exemple

Overrides:
initialize in class Activator<AbstractAgent>

update

public void update(AbstractAgent theAgent,
                   boolean added)
Description copied from class: Activator
this method is automatically invoked when changes occur on the considered group/role couple

Overrides:
update in class Activator<AbstractAgent>
Parameters:
theAgent - is the agent which have been added or removed from the agents collection, the getAgentsList() List)
added - is true if the Agent has been added to the agents collection, false if removed from it

execute

public void execute()
Description copied from class: Activator
this method can be overridden and used to define one behavior for the activator. It is only defined for a generic purpose : giving developers a generic entry point in the activator class.

Overrides:
execute in class Activator<AbstractAgent>

setDebugOff

public void setDebugOff(boolean b)
Parameters:
b - true means that the activator will not display caught errors due to invocation problems. This is useful when agents are often killed and relaunched during the same simulation. This avoids to have exception messages when invoking methods on dead agents.

getAgentsIterator

public final java.util.ListIterator<A> getAgentsIterator()
Deprecated. as of MadKit 4.3 : simply type getCurrentAgentsList().listIterator()

Returns:
a ListIterator over the agents that handle the group/role couple
Since:
MadKit 3.0

getShuffledList

public final java.util.List<A> getShuffledList()
Returns:
a ListIterator which has been previously shuffled
Since:
MadKit 3.0

getCurrentAgentsList

public final java.util.List<A> getCurrentAgentsList()
Returns:
a list view (a snapshot at moment t) of the agents that handle the group/role couple (in proper sequence)
Since:
MadKit 3.0

numberOfAgents

public final int numberOfAgents()
Returns:
the number of the agents that handle the group/role couple

getAgentNb

public final A getAgentNb(int nb)

getCommunity

public final java.lang.String getCommunity()

getGroup

public final java.lang.String getGroup()

getRole

public final java.lang.String getRole()

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object


Copyright © Madkit Team (O. Gutknecht, J. Ferber, F. Michel et al.) All Rights Reserved.