Package com.ibm.wala.util.graph.labeled
Class AbstractLabeledGraph<T,U>
- java.lang.Object
-
- com.ibm.wala.util.graph.AbstractGraph<T>
-
- com.ibm.wala.util.graph.labeled.AbstractLabeledGraph<T,U>
-
- All Implemented Interfaces:
EdgeManager<T>,Graph<T>,LabeledEdgeManager<T,U>,LabeledGraph<T,U>,NodeManager<T>,Iterable<T>
public abstract class AbstractLabeledGraph<T,U> extends AbstractGraph<T> implements LabeledGraph<T,U>
-
-
Constructor Summary
Constructors Constructor Description AbstractLabeledGraph()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddEdge(T src, T dst, U label)adds an edge with some labelSet<? extends U>getEdgeLabels(T src, T dst)Returns a set of all labeled edges between node src and node dstprotected abstract LabeledEdgeManager<T,U>getEdgeManager()Iterator<? extends U>getPredLabels(T N)intgetPredNodeCount(T N, U label)Return the number ofimmediate predecessornodes of this Node in the Graph on edges with some label.Iterator<T>getPredNodes(T N, U label)Return an Iterator over the immediate predecessor nodes of this Node in the Graph on edges with some label.Iterator<? extends U>getSuccLabels(T N)intgetSuccNodeCount(T N, U label)Return the number ofimmediate successornodes of this Node in the GraphIterator<? extends T>getSuccNodes(T N, U label)Return an Iterator over the immediate successor nodes of this Node in the Graph on edges with some label.booleanhasEdge(T src, T dst, U label)voidremoveEdge(T src, T dst, U label)-
Methods inherited from class com.ibm.wala.util.graph.AbstractGraph
addEdge, addNode, containsNode, edgeString, getNodeManager, getNumberOfNodes, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, iterator, nodeString, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeNode, removeNodeAndEdges, removeOutgoingEdges, stream, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.ibm.wala.util.graph.EdgeManager
addEdge, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeOutgoingEdges
-
Methods inherited from interface com.ibm.wala.util.graph.Graph
removeNodeAndEdges
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Methods inherited from interface com.ibm.wala.util.graph.labeled.LabeledEdgeManager
getDefaultLabel, getPredNodes
-
Methods inherited from interface com.ibm.wala.util.graph.NodeManager
addNode, containsNode, getNumberOfNodes, iterator, removeNode, stream
-
-
-
-
Method Detail
-
getEdgeManager
protected abstract LabeledEdgeManager<T,U> getEdgeManager()
- Specified by:
getEdgeManagerin classAbstractGraph<T>- Returns:
- the object which manages edges in the graph
-
addEdge
public void addEdge(T src, T dst, U label)
Description copied from interface:LabeledEdgeManageradds an edge with some label- Specified by:
addEdgein interfaceLabeledEdgeManager<T,U>
-
getPredLabels
public Iterator<? extends U> getPredLabels(T N)
- Specified by:
getPredLabelsin interfaceLabeledEdgeManager<T,U>- Returns:
- the labels on edges whose destination is N
-
getPredNodeCount
public int getPredNodeCount(T N, U label)
Description copied from interface:LabeledEdgeManagerReturn the number ofimmediate predecessornodes of this Node in the Graph on edges with some label.- Specified by:
getPredNodeCountin interfaceLabeledEdgeManager<T,U>- Returns:
- the number of immediate predecessor Nodes of this Node in the Graph.
-
getPredNodes
public Iterator<T> getPredNodes(T N, U label)
Description copied from interface:LabeledEdgeManagerReturn an Iterator over the immediate predecessor nodes of this Node in the Graph on edges with some label.This method never returns
null.- Specified by:
getPredNodesin interfaceLabeledEdgeManager<T,U>- Returns:
- an Iterator over the immediate predecessor nodes of this Node.
-
getSuccLabels
public Iterator<? extends U> getSuccLabels(T N)
- Specified by:
getSuccLabelsin interfaceLabeledEdgeManager<T,U>- Returns:
- the labels on edges whose source is N
-
getSuccNodeCount
public int getSuccNodeCount(T N, U label)
Description copied from interface:LabeledEdgeManagerReturn the number ofimmediate successornodes of this Node in the Graph- Specified by:
getSuccNodeCountin interfaceLabeledEdgeManager<T,U>- Returns:
- the number of immediate successor Nodes of this Node in the Graph.
-
getSuccNodes
public Iterator<? extends T> getSuccNodes(T N, U label)
Description copied from interface:LabeledEdgeManagerReturn an Iterator over the immediate successor nodes of this Node in the Graph on edges with some label.This method never returns
null.- Specified by:
getSuccNodesin interfaceLabeledEdgeManager<T,U>- Returns:
- an Iterator over the immediate successor Nodes of this Node.
-
hasEdge
public boolean hasEdge(T src, T dst, U label)
- Specified by:
hasEdgein interfaceLabeledEdgeManager<T,U>
-
removeEdge
public void removeEdge(T src, T dst, U label)
- Specified by:
removeEdgein interfaceLabeledEdgeManager<T,U>
-
getEdgeLabels
public Set<? extends U> getEdgeLabels(T src, T dst)
Description copied from interface:LabeledEdgeManagerReturns a set of all labeled edges between node src and node dst- Specified by:
getEdgeLabelsin interfaceLabeledEdgeManager<T,U>- Parameters:
src- source node of the edgedst- target node of the edge- Returns:
- Set of edge labels
-
-