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>
public class SparseNumberedLabeledEdgeManager<T,U> extends Object implements NumberedLabeledEdgeManager<T,U>
-
-
Constructor Summary
Constructors Constructor Description SparseNumberedLabeledEdgeManager(NumberedNodeManager<T> nodeManager, U defaultLabel)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addEdge(T src, T dst)
void
addEdge(T src, T dst, U label)
adds an edge with some labelU
getDefaultLabel()
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)
int
getPredNodeCount(T N)
Return the number ofimmediate predecessor
nodes of nint
getPredNodeCount(T N, U label)
Return the number ofimmediate predecessor
nodes of this Node in the Graph on edges with some label.IntSet
getPredNodeNumbers(T node)
IntSet
getPredNodeNumbers(T node, U label)
Iterator<T>
getPredNodes(T N)
Return anIterator
over the immediate predecessor nodes of n This method never returnsnull
.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)
int
getSuccNodeCount(T N)
Return the number ofimmediate successor
nodes of this Node in the Graphint
getSuccNodeCount(T N, U label)
Return the number ofimmediate successor
nodes of this Node in the GraphIntSet
getSuccNodeNumbers(T node)
IntSet
getSuccNodeNumbers(T node, U label)
Iterator<T>
getSuccNodes(T N)
Return an Iterator over the immediate successor nodes of nIterator<? 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.boolean
hasEdge(T src, T dst)
boolean
hasEdge(T src, T dst, U label)
void
removeAllIncidentEdges(T node)
void
removeEdge(T src, T dst)
void
removeEdge(T src, T dst, U label)
void
removeIncomingEdges(T node)
void
removeOutgoingEdges(T node)
-
-
-
Constructor Detail
-
SparseNumberedLabeledEdgeManager
public SparseNumberedLabeledEdgeManager(NumberedNodeManager<T> nodeManager, U defaultLabel)
-
-
Method Detail
-
addEdge
public void addEdge(T src, T dst, U label)
Description copied from interface:LabeledEdgeManager
adds an edge with some label- Specified by:
addEdge
in interfaceLabeledEdgeManager<T,U>
-
getPredNodeCount
public int getPredNodeCount(T N, U label)
Description copied from interface:LabeledEdgeManager
Return the number ofimmediate predecessor
nodes of this Node in the Graph on edges with some label.- Specified by:
getPredNodeCount
in 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:LabeledEdgeManager
Return an Iterator over the immediate predecessor nodes of this Node in the Graph on edges with some label. This method never returnsnull
.- Specified by:
getPredNodes
in interfaceLabeledEdgeManager<T,U>
- Returns:
- an Iterator over the immediate predecessor nodes of this Node.
-
getSuccNodeCount
public int getSuccNodeCount(T N, U label)
Description copied from interface:LabeledEdgeManager
Return the number ofimmediate successor
nodes of this Node in the Graph- Specified by:
getSuccNodeCount
in 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:LabeledEdgeManager
Return 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:
getSuccNodes
in 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:
hasEdge
in interfaceLabeledEdgeManager<T,U>
-
removeAllIncidentEdges
public void removeAllIncidentEdges(T node)
- Specified by:
removeAllIncidentEdges
in interfaceEdgeManager<T>
-
removeEdge
public void removeEdge(T src, T dst, U label) throws IllegalArgumentException
- Specified by:
removeEdge
in interfaceLabeledEdgeManager<T,U>
- Throws:
IllegalArgumentException
-
removeIncomingEdges
public void removeIncomingEdges(T node) throws IllegalArgumentException
- Specified by:
removeIncomingEdges
in interfaceEdgeManager<T>
- Throws:
IllegalArgumentException
-
removeOutgoingEdges
public void removeOutgoingEdges(T node) throws IllegalArgumentException
- Specified by:
removeOutgoingEdges
in interfaceEdgeManager<T>
- Throws:
IllegalArgumentException
-
getPredLabels
public Iterator<? extends U> getPredLabels(T N)
- Specified by:
getPredLabels
in interfaceLabeledEdgeManager<T,U>
- Returns:
- the labels on edges whose destination is N
-
getSuccLabels
public Iterator<? extends U> getSuccLabels(T N)
- Specified by:
getSuccLabels
in 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:LabeledEdgeManager
Returns a set of all labeled edges between node src and node dst- Specified by:
getEdgeLabels
in 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:
addEdge
in interfaceEdgeManager<T>
-
getPredNodeCount
public int getPredNodeCount(T N)
Description copied from interface:EdgeManager
Return the number ofimmediate predecessor
nodes of n- Specified by:
getPredNodeCount
in interfaceEdgeManager<T>
- Returns:
- the number of immediate predecessors of n.
-
getPredNodes
public Iterator<T> getPredNodes(T N)
Description copied from interface:EdgeManager
Return anIterator
over the immediate predecessor nodes of n This method never returnsnull
.- Specified by:
getPredNodes
in interfaceEdgeManager<T>
- Returns:
- an
Iterator
over the immediate predecessor nodes of this Node.
-
getSuccNodeCount
public int getSuccNodeCount(T N)
Description copied from interface:EdgeManager
Return the number ofimmediate successor
nodes of this Node in the Graph- Specified by:
getSuccNodeCount
in interfaceEdgeManager<T>
- Returns:
- the number of immediate successor Nodes of this Node in the Graph.
-
getSuccNodes
public Iterator<T> getSuccNodes(T N)
Description copied from interface:EdgeManager
Return an Iterator over the immediate successor nodes of nThis method never returns
null
.- Specified by:
getSuccNodes
in interfaceEdgeManager<T>
- Returns:
- an Iterator over the immediate successor nodes of n
-
hasEdge
public boolean hasEdge(T src, T dst)
- Specified by:
hasEdge
in interfaceEdgeManager<T>
-
removeEdge
public void removeEdge(T src, T dst) throws UnsupportedOperationException
- Specified by:
removeEdge
in interfaceEdgeManager<T>
- Throws:
UnsupportedOperationException
-
getDefaultLabel
public U getDefaultLabel()
Description copied from interface:LabeledEdgeManager
Sets 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:
getDefaultLabel
in interfaceLabeledEdgeManager<T,U>
-
getPredNodeNumbers
public IntSet getPredNodeNumbers(T node, U label) throws IllegalArgumentException
- Specified by:
getPredNodeNumbers
in interfaceNumberedLabeledEdgeManager<T,U>
- Throws:
IllegalArgumentException
-
getSuccNodeNumbers
public IntSet getSuccNodeNumbers(T node, U label) throws IllegalArgumentException
- Specified by:
getSuccNodeNumbers
in interfaceNumberedLabeledEdgeManager<T,U>
- Throws:
IllegalArgumentException
-
getPredNodeNumbers
public IntSet getPredNodeNumbers(T node)
- Specified by:
getPredNodeNumbers
in interfaceNumberedEdgeManager<T>
- Returns:
- the numbers identifying the immediate predecessors of node
-
getSuccNodeNumbers
public IntSet getSuccNodeNumbers(T node)
- Specified by:
getSuccNodeNumbers
in interfaceNumberedEdgeManager<T>
- Returns:
- the numbers identifying the immediate successors of node
-
-