Package edu.umd.cs.findbugs.graph
Interface Graph<EdgeType extends GraphEdge<EdgeType,VertexType>,VertexType extends GraphVertex<VertexType>>
- All Known Implementing Classes:
AbstractGraph
,CallGraph
,CFG
,ConstraintGraph
,InheritanceGraph
,InterproceduralCallGraph
public interface Graph<EdgeType extends GraphEdge<EdgeType,VertexType>,VertexType extends GraphVertex<VertexType>>
Graph interface; defines the operations used to access and manipulate a
graph.
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Add given vertex to the graph.boolean
Determine if the graph contains the given vertex.createEdge
(VertexType source, VertexType target) Add a new edge to the graph.Get Iterator over all edges in the graph.int
Get the number of numeric labels that have been assigned to edges.int
Get number of edges in the graph.int
getNumIncomingEdges
(VertexType vertex) Get number of edges going into given vertex.int
getNumOutgoingEdges
(VertexType vertex) Get number of edges going out of given vertex.int
Get the number of numeric (integer) labels that have been assigned to vertices in the graph.int
Get number of vertices in the graph.incomingEdgeIterator
(VertexType target) Get an Iterator over incoming edges to a given vertex.lookupEdge
(VertexType source, VertexType target) Look up an edge by source and target vertex.outgoingEdgeIterator
(VertexType source) Get an Iterator over outgoing edges from given vertex.predecessorIterator
(VertexType target) Get an iterator over the predecessors of this vertex; i.e., the sources of the vertex's incoming edges.void
Remove given edge from the graph.void
Remove given vertex from the graph.void
setNumEdgeLabels
(int numLabels) Reset the number of edge labels.void
setNumVertexLabels
(int numLabels) Reset number of (integer) labels.successorIterator
(VertexType source) Get an iterator over the successors of this vertex; i.e., the targets of the vertex's outgoing edges.Get Iterator over all vertices in the graph.
-
Method Details
-
getNumEdges
int getNumEdges()Get number of edges in the graph. -
getNumVertices
int getNumVertices()Get number of vertices in the graph. -
edgeIterator
Get Iterator over all edges in the graph. -
vertexIterator
Iterator<VertexType> vertexIterator()Get Iterator over all vertices in the graph. -
addVertex
Add given vertex to the graph. The vertex should not be part of any other graph.- Parameters:
v
- the vertex to add
-
containsVertex
Determine if the graph contains the given vertex.- Parameters:
v
- the vertex- Returns:
- true if the vertex is part of the graph, false if not
-
createEdge
Add a new edge to the graph. Duplicate edges (with same source and target vertices) are allowed.- Parameters:
source
- the source vertextarget
- the target vertex- Returns:
- the new edge
-
lookupEdge
Look up an edge by source and target vertex. If multiple edges with same source and target vertex exist, one is selected arbitrarily.- Parameters:
source
- the source vertextarget
- the target vertex- Returns:
- a matching edge, or null if there is no matching edge
-
getNumVertexLabels
int getNumVertexLabels()Get the number of numeric (integer) labels that have been assigned to vertices in the graph. All vertices in the graph are guaranteed to have labels in the range 0..n, where n is the value returned by this method. -
setNumVertexLabels
void setNumVertexLabels(int numLabels) Reset number of (integer) labels. This might be necessary if an algorithm has assigned new labels to a graph's vertices. -
getNumEdgeLabels
int getNumEdgeLabels()Get the number of numeric labels that have been assigned to edges. -
setNumEdgeLabels
void setNumEdgeLabels(int numLabels) Reset the number of edge labels. -
removeEdge
Remove given edge from the graph. -
removeVertex
Remove given vertex from the graph. Note that all edges referencing the vertex will be removed. -
outgoingEdgeIterator
Get an Iterator over outgoing edges from given vertex.- Parameters:
source
- the source vertex- Returns:
- an Iterator over outgoing edges
-
incomingEdgeIterator
Get an Iterator over incoming edges to a given vertex.- Parameters:
target
- the target vertex- Returns:
- an Iterator over incoming edges
-
getNumIncomingEdges
Get number of edges going into given vertex.- Parameters:
vertex
- the vertex- Returns:
- number of edges going into the vertex
-
getNumOutgoingEdges
Get number of edges going out of given vertex.- Parameters:
vertex
- the vertex- Returns:
- number of edges going out of the vertex
-
successorIterator
Get an iterator over the successors of this vertex; i.e., the targets of the vertex's outgoing edges.- Parameters:
source
- the source vertex- Returns:
- an Iterator over the successors of the vertex
-
predecessorIterator
Get an iterator over the predecessors of this vertex; i.e., the sources of the vertex's incoming edges.- Parameters:
target
- the target vertex- Returns:
- an Iterator over the predecessors of the vertex
-