Package com.ibm.wala.util.graph.labeled
Class SparseNumberedLabeledEdgeManager<T,U>
- java.lang.Object
-
- com.ibm.wala.util.graph.labeled.SparseNumberedLabeledEdgeManager<T,U>
-
- All Implemented Interfaces:
EdgeManager<T>,LabeledEdgeManager<T,U>,NumberedLabeledEdgeManager<T,U>,NumberedEdgeManager<T>,Serializable
public class SparseNumberedLabeledEdgeManager<T,U> extends Object implements Serializable, NumberedLabeledEdgeManager<T,U>
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description SparseNumberedLabeledEdgeManager(NumberedNodeManager<T> nodeManager)SparseNumberedLabeledEdgeManager(NumberedNodeManager<T> nodeManager, U defaultLabel)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddEdge(T src, T dst)voidaddEdge(T src, T dst, @Nullable U label)adds an edge with some label@Nullable UgetDefaultLabel()Sets the default object used as label for operations where no specific edge label is provided.Set<? extends U>getEdgeLabels(T src, T dst)Returns a set of all labeled edges between node src and node dstIterator<? extends U>getPredLabels(T N)intgetPredNodeCount(T N)Return the number ofimmediate predecessornodes of nintgetPredNodeCount(T N, U label)Return the number ofimmediate predecessornodes of this Node in the Graph on edges with some label.IntSetgetPredNodeNumbers(@Nullable T node)IntSetgetPredNodeNumbers(@Nullable T node, U label)Iterator<T>getPredNodes(@Nullable T N)Return anIteratorover the immediate predecessor nodes of nIterator<T>getPredNodes(@Nullable 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)Return the number ofimmediate successornodes of this Node in the GraphintgetSuccNodeCount(T N, U label)Return the number ofimmediate successornodes of this Node in the GraphIntSetgetSuccNodeNumbers(@Nullable T node)IntSetgetSuccNodeNumbers(@Nullable T node, U label)Iterator<T>getSuccNodes(@Nullable T N)Return an Iterator over the immediate successor nodes of nIterator<? extends T>getSuccNodes(@Nullable T N, U label)Return an Iterator over the immediate successor nodes of this Node in the Graph on edges with some label.booleanhasEdge(@Nullable T src, @Nullable T dst)booleanhasEdge(@Nullable T src, @Nullable T dst, U label)voidremoveAllIncidentEdges(T node)voidremoveEdge(T src, T dst)voidremoveEdge(T src, T dst, U label)voidremoveIncomingEdges(T node)voidremoveOutgoingEdges(T node)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.ibm.wala.util.graph.labeled.LabeledEdgeManager
getPredNodes
-
-
-
-
Constructor Detail
-
SparseNumberedLabeledEdgeManager
public SparseNumberedLabeledEdgeManager(NumberedNodeManager<T> nodeManager, U defaultLabel)
-
SparseNumberedLabeledEdgeManager
public SparseNumberedLabeledEdgeManager(NumberedNodeManager<T> nodeManager)
-
-
Method Detail
-
addEdge
public void addEdge(T src, T dst, @Nullable U label)
Description copied from interface:LabeledEdgeManageradds an edge with some label- Specified by:
addEdgein interfaceLabeledEdgeManager<T,U>- See Also:
LabeledEdgeManager.addEdge(java.lang.Object, java.lang.Object, java.lang.Object)
-
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.
- See Also:
LabeledEdgeManager.getPredNodeCount(java.lang.Object, java.lang.Object)
-
getPredNodes
public Iterator<T> getPredNodes(@Nullable 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.
- See Also:
LabeledEdgeManager.getPredNodes(java.lang.Object, java.lang.Object)
-
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.
- See Also:
LabeledEdgeManager.getSuccNodeCount(java.lang.Object, java.lang.Object)
-
getSuccNodes
public Iterator<? extends T> getSuccNodes(@Nullable 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.
- See Also:
LabeledEdgeManager.getSuccNodes(java.lang.Object, java.lang.Object)
-
hasEdge
public boolean hasEdge(@Nullable T src, @Nullable T dst, U label)
- Specified by:
hasEdgein interfaceLabeledEdgeManager<T,U>- See Also:
LabeledEdgeManager.hasEdge(java.lang.Object, java.lang.Object, java.lang.Object)
-
removeAllIncidentEdges
public void removeAllIncidentEdges(T node)
- Specified by:
removeAllIncidentEdgesin interfaceEdgeManager<T>
-
removeEdge
public void removeEdge(T src, T dst, U label) throws IllegalArgumentException
- Specified by:
removeEdgein interfaceLabeledEdgeManager<T,U>- Throws:
IllegalArgumentException- See Also:
LabeledEdgeManager.removeEdge(java.lang.Object, java.lang.Object, java.lang.Object)
-
removeIncomingEdges
public void removeIncomingEdges(T node) throws IllegalArgumentException
- Specified by:
removeIncomingEdgesin interfaceEdgeManager<T>- Throws:
IllegalArgumentException- See Also:
EdgeManager.removeIncomingEdges(java.lang.Object)
-
removeOutgoingEdges
public void removeOutgoingEdges(T node) throws IllegalArgumentException
- Specified by:
removeOutgoingEdgesin interfaceEdgeManager<T>- Throws:
IllegalArgumentException- See Also:
EdgeManager.removeOutgoingEdges(java.lang.Object)
-
getPredLabels
public Iterator<? extends U> getPredLabels(T N)
- Specified by:
getPredLabelsin interfaceLabeledEdgeManager<T,U>- Returns:
- the labels on edges whose destination is N
-
getSuccLabels
public Iterator<? extends U> getSuccLabels(T N)
- Specified by:
getSuccLabelsin interfaceLabeledEdgeManager<T,U>- Returns:
- the labels on edges whose source is N
-
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
-
addEdge
public void addEdge(T src, T dst)
- Specified by:
addEdgein interfaceEdgeManager<T>
-
getPredNodeCount
public int getPredNodeCount(T N)
Description copied from interface:EdgeManagerReturn the number ofimmediate predecessornodes of n- Specified by:
getPredNodeCountin interfaceEdgeManager<T>- Returns:
- the number of immediate predecessors of n.
-
getPredNodes
public Iterator<T> getPredNodes(@Nullable T N)
Description copied from interface:EdgeManagerReturn anIteratorover the immediate predecessor nodes of nThis method never returns
null.- Specified by:
getPredNodesin interfaceEdgeManager<T>- Returns:
- an
Iteratorover the immediate predecessor nodes of this Node.
-
getSuccNodeCount
public int getSuccNodeCount(T N)
Description copied from interface:EdgeManagerReturn the number ofimmediate successornodes of this Node in the Graph- Specified by:
getSuccNodeCountin interfaceEdgeManager<T>- Returns:
- the number of immediate successor Nodes of this Node in the Graph.
-
getSuccNodes
public Iterator<T> getSuccNodes(@Nullable T N)
Description copied from interface:EdgeManagerReturn an Iterator over the immediate successor nodes of nThis method never returns
null.- Specified by:
getSuccNodesin interfaceEdgeManager<T>- Returns:
- an Iterator over the immediate successor nodes of n
-
hasEdge
public boolean hasEdge(@Nullable T src, @Nullable T dst)
- Specified by:
hasEdgein interfaceEdgeManager<T>
-
removeEdge
public void removeEdge(T src, T dst) throws UnsupportedOperationException
- Specified by:
removeEdgein interfaceEdgeManager<T>- Throws:
UnsupportedOperationException
-
getDefaultLabel
public @Nullable U getDefaultLabel()
Description copied from interface:LabeledEdgeManagerSets the default object used as label for operations where no specific edge label is provided. This is due to compatibility with the EdgeManager interface- Specified by:
getDefaultLabelin interfaceLabeledEdgeManager<T,U>
-
getPredNodeNumbers
public IntSet getPredNodeNumbers(@Nullable T node, U label) throws IllegalArgumentException
- Specified by:
getPredNodeNumbersin interfaceNumberedLabeledEdgeManager<T,U>- Throws:
IllegalArgumentException
-
getSuccNodeNumbers
public IntSet getSuccNodeNumbers(@Nullable T node, U label) throws IllegalArgumentException
- Specified by:
getSuccNodeNumbersin interfaceNumberedLabeledEdgeManager<T,U>- Throws:
IllegalArgumentException
-
getPredNodeNumbers
public IntSet getPredNodeNumbers(@Nullable T node)
- Specified by:
getPredNodeNumbersin interfaceNumberedEdgeManager<T>- Returns:
- the numbers identifying the immediate predecessors of node
-
getSuccNodeNumbers
public IntSet getSuccNodeNumbers(@Nullable T node)
- Specified by:
getSuccNodeNumbersin interfaceNumberedEdgeManager<T>- Returns:
- the numbers identifying the immediate successors of node
-
-