public class GenericBehaviorActivator<A extends AbstractAgent> extends Activator<A>
AbstractAgent
.
This has to be used by Scheduler
subclasses to
create simulation applications.Constructor and Description |
---|
GenericBehaviorActivator(String community,
String group,
String role,
String theBehaviorToActivate)
Builds a new GenericBehaviorActivator on the given CGR location of the
artificial society.
|
Modifier and Type | Method and Description |
---|---|
protected void |
adding(A agent)
This method is automatically called when an agent
joins the corresponding group and role.
|
protected void |
adding(List<A> agents)
Called when a list of agents joins the corresponding group and role.
|
void |
allAgentsLeaveRole()
Makes all the agents leave the corresponding role at once.
|
void |
execute(List<A> agents,
Object... args)
Triggers the corresponding behavior on all the agents
which are at the CGR location defined by this activator.
|
String |
getBehaviorName() |
String |
getCommunity()
Gets the community to which this activator/probe is binded to.
|
List<A> |
getCurrentAgentsList()
Returns a snapshot at moment t of the agents handling the group/role couple
|
String |
getGroup()
Gets the group to which this activator/probe is binded to.
|
String |
getRole()
Gets the role to which this activator/probe is binded to.
|
List<A> |
getShuffledList()
Returns a ListIterator over the agents which is shuffled
|
void |
initialize()
Called by the MaDKit kernel when the Activator or Probe is
first added.
|
void |
killAgents()
Kills all the agents which are monitored.
|
protected void |
removing(A agent)
This method is automatically called when an agent
leaves the corresponding group and role.
|
protected void |
removing(List<A> agents)
This method is automatically called when
a list of agents has leaved the corresponding group and role.
|
int |
size()
Returns the number of the agents handling the group/role couple
|
execute, findMethodOn, getMadkitServiceExecutor, isMulticoreModeOn, multicoreExecute, nbOfParallelTasks, toString, useMulticore
public GenericBehaviorActivator(String community, String group, String role, String theBehaviorToActivate)
Scheduler
agent using the Scheduler.addActivator(Activator)
method.
Once added, it could be used to trigger the behavior on all the agents which are at this CGR location, regardless
of their class type as long as they extend AbstractAgent
community
- group
- role
- theBehaviorToActivate
- name of the Java method which will be invokedpublic String getBehaviorName()
public void execute(List<A> agents, Object... args)
execute
in class Activator<A extends AbstractAgent>
Activator.execute(List, Object...)
public String getCommunity()
public String getGroup()
public String getRole()
public void initialize()
adding(getCurrentAgentsList());
protected void adding(List<A> agents)
AbstractAgent.launchAgentBucket(String, int, String...)
.
Override this method when you want
to do some initialization on the agents that enter the group/role.
Default implementation is:
protected void adding(final List<A> agents) { for (A agent : agents) { adding(agent); } }
agents
- the list of agents which have been added to this group/role at once.protected void adding(A agent)
agent
- which has been added to this group/roleprotected void removing(List<A> agents)
protected void removing(final List<A> agents) { for (A agent : agents) { removing(agent); } }
agents
- the list of agents which have been removed from this group/roleprotected void removing(A agent)
agent
- which has been removed from this group/rolepublic int size()
public List<A> getCurrentAgentsList()
public List<A> getShuffledList()
public void killAgents()
public void allAgentsLeaveRole()
Fabien Michel, Olivier Gutknecht, Jacques Ferber - March 9 2017