de.cesr.more.building.network
Class MNetworkService<AgentType,EdgeType extends MoreEdge<? super AgentType>>

java.lang.Object
  extended by de.cesr.more.building.network.MNetworkService<AgentType,EdgeType>
All Implemented Interfaces:
MoreNetworkBuilder<AgentType,EdgeType>, MoreNetworkService<AgentType,EdgeType>, MoreNetworkEdgeModifier<AgentType,EdgeType>, MoreNetworkModifier<AgentType,EdgeType>
Direct Known Subclasses:
MCompleteNetworkBuilder, MGCompleteNetworkBuilder, MGeoNetworkService, MRsCompleteNetworkBuilder, MRsNetworkService, MWattsBetaSwBuilder

public abstract class MNetworkService<AgentType,EdgeType extends MoreEdge<? super AgentType>>
extends Object
implements MoreNetworkService<AgentType,EdgeType>

MORe Provides basic functionality for network generators

Date:
21.11.2011

Field Summary
protected  MoreEdgeFactory<AgentType,EdgeType> edgeFac
           
protected  MoreNetworkEdgeModifier<AgentType,EdgeType> edgeModifier
          should be accessed via getEdgeModifer...
 
Constructor Summary
MNetworkService()
           
MNetworkService(MoreEdgeFactory<AgentType,EdgeType> edgeFac)
           
 
Method Summary
protected  void addAgents(MoreNetwork<AgentType,EdgeType> network, Collection<AgentType> agents)
          Adds agents as nodes to the given network without linking them.
protected  void checkAgentCollection(Collection<AgentType> agents)
           
 EdgeType createEdge(MoreNetwork<AgentType,EdgeType> network, AgentType source, AgentType target)
          Created an edge in the direction from potInfluencer to influencedHh
 MoreEdgeFactory<AgentType,EdgeType> getEdgeFactory()
          To set a new MoreEdgeFactory, assign a new MoreNetworkEdgeModifier!
 MoreNetworkEdgeModifier<AgentType,EdgeType> getEdgeModifier()
           
protected  void logEdges(Logger logger, MoreNetwork<AgentType,EdgeType> network, String prestring)
           
 boolean removeEdge(MoreNetwork<AgentType,EdgeType> network, AgentType source, AgentType target)
          Removes an edge from source node to target node within the given network and takes care for additional work in the particular context, e.g.
 boolean removeNode(MoreNetwork<AgentType,EdgeType> network, AgentType node)
          Adds an agent to the given network.
 void setEdgeModifier(MoreNetworkEdgeModifier<AgentType,EdgeType> edgeModifier)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface de.cesr.more.building.network.MoreNetworkBuilder
buildNetwork
 
Methods inherited from interface de.cesr.more.manipulate.network.MoreNetworkModifier
addAndLinkNode
 

Field Detail

edgeFac

protected MoreEdgeFactory<AgentType,EdgeType extends MoreEdge<? super AgentType>> edgeFac

edgeModifier

protected MoreNetworkEdgeModifier<AgentType,EdgeType extends MoreEdge<? super AgentType>> edgeModifier
should be accessed via getEdgeModifer...

Constructor Detail

MNetworkService

public MNetworkService(MoreEdgeFactory<AgentType,EdgeType> edgeFac)
Parameters:
areasGeography -

MNetworkService

public MNetworkService()
Parameters:
areasGeography -
Method Detail

addAgents

protected void addAgents(MoreNetwork<AgentType,EdgeType> network,
                         Collection<AgentType> agents)
Adds agents as nodes to the given network without linking them.

Parameters:
network -
agents -

removeNode

public boolean removeNode(MoreNetwork<AgentType,EdgeType> network,
                          AgentType node)
Description copied from interface: MoreNetworkModifier
Adds an agent to the given network. In combination with MoreNetworkBuilder this method should connect the agent in a way the

Specified by:
removeNode in interface MoreNetworkModifier<AgentType,EdgeType extends MoreEdge<? super AgentType>>
Parameters:
network - the network the given agent is added to
Returns:
true if the agent could be added an all additional steps could be performed
See Also:
MoreNetworkModifier.removeNode(de.cesr.more.basic.network.MoreNetwork, java.lang.Object)

removeEdge

public boolean removeEdge(MoreNetwork<AgentType,EdgeType> network,
                          AgentType source,
                          AgentType target)
Description copied from interface: MoreNetworkEdgeModifier
Removes an edge from source node to target node within the given network and takes care for additional work in the particular context, e.g. removing links in a geography.

Specified by:
removeEdge in interface MoreNetworkEdgeModifier<AgentType,EdgeType extends MoreEdge<? super AgentType>>
Returns:
true if the deletion process was successful.
See Also:
MoreNetworkEdgeModifier.removeEdge(de.cesr.more.basic.network.MoreNetwork, java.lang.Object, java.lang.Object)

createEdge

public EdgeType createEdge(MoreNetwork<AgentType,EdgeType> network,
                           AgentType source,
                           AgentType target)
Created an edge in the direction from potInfluencer to influencedHh

Specified by:
createEdge in interface MoreNetworkEdgeModifier<AgentType,EdgeType extends MoreEdge<? super AgentType>>
Parameters:
network -
influencedHh -
potInfluencer -
Returns:
the (new) edge

logEdges

protected void logEdges(Logger logger,
                        MoreNetwork<AgentType,EdgeType> network,
                        String prestring)
Parameters:
network -

checkAgentCollection

protected void checkAgentCollection(Collection<AgentType> agents)

getEdgeModifier

public MoreNetworkEdgeModifier<AgentType,EdgeType> getEdgeModifier()
Returns:
the edgeModifier

setEdgeModifier

public void setEdgeModifier(MoreNetworkEdgeModifier<AgentType,EdgeType> edgeModifier)
Specified by:
setEdgeModifier in interface MoreNetworkModifier<AgentType,EdgeType extends MoreEdge<? super AgentType>>
Parameters:
edgeModifier - the edgeModifier to set

getEdgeFactory

public MoreEdgeFactory<AgentType,EdgeType> getEdgeFactory()
To set a new MoreEdgeFactory, assign a new MoreNetworkEdgeModifier!

Specified by:
getEdgeFactory in interface MoreNetworkEdgeModifier<AgentType,EdgeType extends MoreEdge<? super AgentType>>
Returns:
the underlying edge factory
See Also:
MoreNetworkEdgeModifier.getEdgeFactory()