Class CountingAlg<V>
java.lang.Object
tools.refinery.interpreter.rete.itc.alg.counting.CountingAlg<V>
- Type Parameters:
V- the type parameter of the nodes in the graph data source
- All Implemented Interfaces:
IGraphObserver<V>,ITcDataSource<V>
This class is the optimized implementation of the Counting algorithm.
-
Constructor Summary
ConstructorsConstructorDescriptionCountingAlg(IGraphDataSource<V> gds) Constructs a new Counting algorithm and initializes the transitive closure relation with the given graph data source. -
Method Summary
Modifier and TypeMethodDescriptionvoidattachObserver(ITcObserver<V> to) Attach a transitive closure relation observer.voiddetachObserver(ITcObserver<V> to) Detach a transitive closure relation observer.voiddispose()Call this method to properly dispose the data structures of a transitive closure algorithm.voidedgeDeleted(V source, V target) Used to notify when an edge is deleted from the graph.voidedgeInserted(V source, V target) Used to notify when an edge is inserted into the graph.getAllReachableSources(V target) Returns all nodes from which the target node is reachable.getAllReachableTargets(V source) Returns all nodes which are reachable from the source node.The returnedIGraphPathFindercan be used to retrieve paths between nodes using transitive reachability.booleanisReachable(V source, V target) Returns true if the target node is reachable from the source node.voidnodeDeleted(V n) Used to notify when a node is deleted from the graph.voidnodeInserted(V n) Used to notify when a node is inserted into the graph.void
-
Constructor Details
-
CountingAlg
Constructs a new Counting algorithm and initializes the transitive closure relation with the given graph data source. Attach itself on the graph data source as an observer.- Parameters:
gds- the graph data source instance
-
-
Method Details
-
edgeInserted
Description copied from interface:IGraphObserverUsed to notify when an edge is inserted into the graph.- Specified by:
edgeInsertedin interfaceIGraphObserver<V>- Parameters:
source- the source of the edgetarget- the target of the edge
-
edgeDeleted
Description copied from interface:IGraphObserverUsed to notify when an edge is deleted from the graph.- Specified by:
edgeDeletedin interfaceIGraphObserver<V>- Parameters:
source- the source of the edgetarget- the target of the edge
-
nodeInserted
Description copied from interface:IGraphObserverUsed to notify when a node is inserted into the graph.- Specified by:
nodeInsertedin interfaceIGraphObserver<V>- Parameters:
n- the node
-
nodeDeleted
Description copied from interface:IGraphObserverUsed to notify when a node is deleted from the graph.- Specified by:
nodeDeletedin interfaceIGraphObserver<V>- Parameters:
n- the node
-
getTcRelation
-
setTcRelation
-
isReachable
Description copied from interface:ITcDataSourceReturns true if the target node is reachable from the source node.- Specified by:
isReachablein interfaceITcDataSource<V>- Parameters:
source- the source nodetarget- the target node- Returns:
- true if target is reachable from source, false otherwise
-
attachObserver
Description copied from interface:ITcDataSourceAttach a transitive closure relation observer.- Specified by:
attachObserverin interfaceITcDataSource<V>- Parameters:
to- the observer object
-
detachObserver
Description copied from interface:ITcDataSourceDetach a transitive closure relation observer.- Specified by:
detachObserverin interfaceITcDataSource<V>- Parameters:
to- the observer object
-
getAllReachableTargets
Description copied from interface:ITcDataSourceReturns all nodes which are reachable from the source node.- Specified by:
getAllReachableTargetsin interfaceITcDataSource<V>- Parameters:
source- the source node- Returns:
- the set of target nodes
-
getAllReachableSources
Description copied from interface:ITcDataSourceReturns all nodes from which the target node is reachable.- Specified by:
getAllReachableSourcesin interfaceITcDataSource<V>- Parameters:
target- the target node- Returns:
- the set of source nodes
-
dispose
public void dispose()Description copied from interface:ITcDataSourceCall this method to properly dispose the data structures of a transitive closure algorithm.- Specified by:
disposein interfaceITcDataSource<V>
-
getPathFinder
Description copied from interface:ITcDataSourceThe returnedIGraphPathFindercan be used to retrieve paths between nodes using transitive reachability.- Specified by:
getPathFinderin interfaceITcDataSource<V>- Returns:
- a path finder for the graph.
-