public interface Group<A extends Agent<?>>
Agent
s of a specific type that can be used to create links
between agents in the group, and to agents in other groups.
When connecting two groups, one has to use a specific Linker to define the exact topology to
use. Some Groups propose more possibilities of connections overloading connect(simudyne.core.abm.Group<?>, C)
.
Modifier and Type | Method and Description |
---|---|
default <L extends Link> |
bananaTreeConnected(int nbStars,
java.lang.Class<L> linkClass)
bananaTreeConnected(int, Class, SerializableBiConsumer) without a data injector
so no initial function is run for links. |
<L extends Link> |
bananaTreeConnected(int nbStars,
java.lang.Class<L> linkClass,
SerializableBiConsumer<A,L> dataInjector)
Connect agents within this group using the
GridConnected strategy. |
<C extends Connector<A>> |
connect(Group<?> target,
C connector)
Connect this group to a target group using connection rules defined in a
Connector |
default <L extends Link> |
fullyConnected(Group<?> target,
java.lang.Class<L> linkClass)
fullyConnected(Group, Class, SerializableBiConsumer) without a data injector so
no initial function is run for links |
<L extends Link> |
fullyConnected(Group<?> target,
java.lang.Class<L> linkClass,
SerializableBiConsumer<A,L> dataInjector)
Connect this group to a target group using the
FullyConnected strategy. |
default <L extends Link> |
graphConnected(org.apache.commons.math3.distribution.IntegerDistribution degreeDistr,
org.apache.commons.math3.distribution.RealDistribution clustCoefDistr,
java.lang.Class<L> linkClass)
graphConnected(IntegerDistribution, RealDistribution, Class,
SerializableBiConsumer) without a data injector so no initial function is run for links. |
<L extends Link> |
graphConnected(org.apache.commons.math3.distribution.IntegerDistribution degreeDistr,
org.apache.commons.math3.distribution.RealDistribution clustCoefDistr,
java.lang.Class<L> linkClass,
SerializableBiConsumer<A,L> dataInjector) |
default <L extends Link> |
gridConnected(java.lang.Class<L> linkClass)
gridConnected(Class, SerializableBiConsumer) without a data injector so no
initial function is run for links. |
<L extends Link> |
gridConnected(java.lang.Class<L> linkClass,
SerializableBiConsumer<A,L> dataInjector)
Connect agents within this group using the
GridConnected strategy. |
default <L extends Link> |
loadConnections(Group<?> target,
java.lang.Class<L> linkClass,
Source source)
loadConnections(Group, Class, Source, SerializableBiConsumer) without a data
injector so no initial function is run for links |
<L extends Link> |
loadConnections(Group<?> target,
java.lang.Class<L> linkClass,
Source source,
SerializableBiConsumer<A,L> linkInjector)
Connect this Group with another Group, using some data via a DataConnector.
|
default <L extends Link> |
partitionConnected(Group<?> target,
java.lang.Class<L> linkClass)
partitionConnected(Group, Class, SerializableBiConsumer) without a data injector
so no initial function is run for links. |
<L extends Link> |
partitionConnected(Group<?> target,
java.lang.Class<L> linkClass,
SerializableBiConsumer<A,L> dataInjector)
Connect this group to a target group using the
PartitionConnected strategy. |
default <L extends Link> |
ringConnected(java.lang.Class<L> linkClass)
ringConnected(Class, SerializableBiConsumer) without a data injector so no
initial function is run for links. |
<L extends Link> |
ringConnected(java.lang.Class<L> linkClass,
SerializableBiConsumer<A,L> dataInjector)
Connect agents within this group using the
RingConnected strategy. |
default <L extends Link> |
smallWorldConnected(int inDegree,
double beta,
java.lang.Class<L> linkClass)
smallWorldConnected(int, double, Class, SerializableBiConsumer) without a data
injector so no initial function is run for links. |
<L extends Link> |
smallWorldConnected(int inDegree,
double beta,
java.lang.Class<L> linkClass,
SerializableBiConsumer<A,L> dataInjector)
Connect agents within this group using the
SmallWorld strategy. |
<C extends Connector<A>> C connect(Group<?> target, C connector)
Connector
default <L extends Link> DataConnector<A,L> loadConnections(Group<?> target, java.lang.Class<L> linkClass, Source source)
loadConnections(Group, Class, Source, SerializableBiConsumer)
without a data
injector so no initial function is run for links<L extends Link> DataConnector<A,L> loadConnections(Group<?> target, java.lang.Class<L> linkClass, Source source, SerializableBiConsumer<A,L> linkInjector)
target
- The group to connect to.source
- The source to uselinkInjector
- Function run when on each link after is loaded from source which can be
used to set initialization values of linkdefault <L extends Link> FullyConnected<A,L> fullyConnected(Group<?> target, java.lang.Class<L> linkClass)
fullyConnected(Group, Class, SerializableBiConsumer)
without a data injector so
no initial function is run for links<L extends Link> FullyConnected<A,L> fullyConnected(Group<?> target, java.lang.Class<L> linkClass, SerializableBiConsumer<A,L> dataInjector)
FullyConnected
strategy.target
- The group to connect tolinkClass
- Class to be used to store data on the links between agentsdataInjector
- Function run when each link is created which can be used to set
initialization values of linkdefault <L extends Link> PartitionConnected<A,L> partitionConnected(Group<?> target, java.lang.Class<L> linkClass)
partitionConnected(Group, Class, SerializableBiConsumer)
without a data injector
so no initial function is run for links.<L extends Link> PartitionConnected<A,L> partitionConnected(Group<?> target, java.lang.Class<L> linkClass, SerializableBiConsumer<A,L> dataInjector)
PartitionConnected
strategy.target
- The group to connect tolinkClass
- Class to be used to store data on the links between agentsdataInjector
- Function run when each link is created which can be used to set
initialization values of linkdefault <L extends Link> SmallWorld<A,L> smallWorldConnected(int inDegree, double beta, java.lang.Class<L> linkClass)
smallWorldConnected(int, double, Class, SerializableBiConsumer)
without a data
injector so no initial function is run for links.<L extends Link> SmallWorld<A,L> smallWorldConnected(int inDegree, double beta, java.lang.Class<L> linkClass, SerializableBiConsumer<A,L> dataInjector)
SmallWorld
strategy.inDegree
- The number of outgoing links for each agentbeta
- The degree of randomness of the graph (Must be between 0 and 1)linkClass
- Class to be used to store data on the links between agentsdataInjector
- Function run when each link is created which can be used to set
initialization values of linkdefault <L extends Link> RingConnected<A,L> ringConnected(java.lang.Class<L> linkClass)
ringConnected(Class, SerializableBiConsumer)
without a data injector so no
initial function is run for links.<L extends Link> RingConnected<A,L> ringConnected(java.lang.Class<L> linkClass, SerializableBiConsumer<A,L> dataInjector)
RingConnected
strategy.linkClass
- Class to be used to store data on the links between agentsdataInjector
- Function run when each link is created which can be used to set
initialization values of linkdefault <L extends Link> GridConnected<A,L> gridConnected(java.lang.Class<L> linkClass)
gridConnected(Class, SerializableBiConsumer)
without a data injector so no
initial function is run for links.<L extends Link> GridConnected<A,L> gridConnected(java.lang.Class<L> linkClass, SerializableBiConsumer<A,L> dataInjector)
GridConnected
strategy.linkClass
- Class to be used to store data on the links between agentsdataInjector
- Function run when each link is created which can be used to set
initialization values of linkdefault <L extends Link> BananaTree<A,L> bananaTreeConnected(int nbStars, java.lang.Class<L> linkClass)
bananaTreeConnected(int, Class, SerializableBiConsumer)
without a data injector
so no initial function is run for links.<L extends Link> BananaTree<A,L> bananaTreeConnected(int nbStars, java.lang.Class<L> linkClass, SerializableBiConsumer<A,L> dataInjector)
GridConnected
strategy.nbStars
- Number of stars to createlinkClass
- Class to be used to store data on the links between agentsdataInjector
- Function run when each link is created which can be used to set
initialization values of linkdefault <L extends Link> GraphConnector<A,L> graphConnected(org.apache.commons.math3.distribution.IntegerDistribution degreeDistr, org.apache.commons.math3.distribution.RealDistribution clustCoefDistr, java.lang.Class<L> linkClass)
graphConnected(IntegerDistribution, RealDistribution, Class,
SerializableBiConsumer)
without a data injector so no initial function is run for links.<L extends Link> GraphConnector<A,L> graphConnected(org.apache.commons.math3.distribution.IntegerDistribution degreeDistr, org.apache.commons.math3.distribution.RealDistribution clustCoefDistr, java.lang.Class<L> linkClass, SerializableBiConsumer<A,L> dataInjector)