A
- the most common class type expected in this group (e.g. AbstractAgent)T
- the type of the property, i.e. Integer (this works if the field is an int, i.e. a primitive type)public class PropertyProbe<A extends AbstractAgent,T> extends Probe<A>
Constructor and Description |
---|
PropertyProbe(String community,
String group,
String role,
String fieldName)
Builds a new PropertyProbe considering a CGR location and the name of the class's field.
|
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.
|
double |
getAverageValue()
Returns the average value for the property over all the agents.
|
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.
|
T |
getMaxValue()
Returns the maximum for the property over all the agents.
|
T |
getMinValue()
Returns the minimum for the property over all the agents.
|
T |
getPropertyValue(A agent)
Returns the current value of the agent's field
|
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.
|
void |
setPropertyValue(A agent,
T value)
Should be used to work with primitive types or fields which are initially
null |
int |
size()
Returns the number of the agents handling the group/role couple
|
String |
toString()
returns a string containing the CGR location and the number of monitored agents.
|
findFieldOn
public T getPropertyValue(A agent)
agent
- the agent to probepublic void setPropertyValue(A agent, T value)
null
agent
- value
- public T getMaxValue()
Comparable
for
this to work.public T getMinValue()
Comparable
for
this to work.public double getAverageValue()
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
- the agent which is being removed from this group/rolepublic int size()
public List<A> getCurrentAgentsList()
public List<A> getShuffledList()
public String toString()
public void killAgents()
public void allAgentsLeaveRole()
Fabien Michel, Olivier Gutknecht, Jacques Ferber - February 17 2020