com.ibm.wala.util.graph.labeled
Interface LabeledEdgeManager<T,U>

Type Parameters:
T - type of nodes in this graph
U - types of edge labels.
All Superinterfaces:
EdgeManager<T>
All Known Subinterfaces:
IFlowGraph, LabeledGraph<T,U>, NumberedLabeledEdgeManager<T,U>
All Known Implementing Classes:
AbstractDemandFlowGraph, AbstractFlowGraph, AbstractLabeledGraph, AbstractNumberedLabeledGraph, DemandPointerFlowGraph, DemandValueFlowGraph, SlowSparseNumberedLabeledGraph, SparseNumberedLabeledEdgeManager

public interface LabeledEdgeManager<T,U>
extends EdgeManager<T>

An object which tracks labeled edges in a graph.


Method Summary
 void addEdge(T src, T dst, U label)
          adds an edge with some label
 U getDefaultLabel()
          Sets the default object used as label for operations where no specific edge label is provided.
 java.util.Set<? extends U> getEdgeLabels(T src, T dst)
          Returns a set of all labeled edges between node src and node dst
 java.util.Iterator<? extends U> getPredLabels(T N)
           
 int getPredNodeCount(T N, U label)
          Return the number of immediate predecessor nodes of this Node in the Graph on edges with some label.
 java.util.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.
 java.util.Iterator<? extends U> getSuccLabels(T N)
           
 int getSuccNodeCount(T N, U label)
          Return the number of immediate successor nodes of this Node in the Graph
 java.util.Iterator<? 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, U label)
           
 void removeEdge(T src, T dst, U label)
           
 
Methods inherited from interface com.ibm.wala.util.graph.EdgeManager
addEdge, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeOutgoingEdges
 

Method Detail

getDefaultLabel

U getDefaultLabel()
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


getPredNodes

java.util.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. This method never returns null.

Returns:
an Iterator over the immediate predecessor nodes of this Node.

getPredLabels

java.util.Iterator<? extends U> getPredLabels(T N)
Parameters:
N -
Returns:
the labels on edges whose destination is N

getPredNodeCount

int getPredNodeCount(T N,
                     U label)
Return the number of immediate predecessor nodes of this Node in the Graph on edges with some label.

Returns:
the number of immediate predecessor Nodes of this Node in the Graph.

getSuccNodes

java.util.Iterator<? 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.

This method never returns null.

Returns:
an Iterator over the immediate successor Nodes of this Node.

getSuccLabels

java.util.Iterator<? extends U> getSuccLabels(T N)
Returns:
the labels on edges whose source is N

getSuccNodeCount

int getSuccNodeCount(T N,
                     U label)
Return the number of immediate successor nodes of this Node in the Graph

Returns:
the number of immediate successor Nodes of this Node in the Graph.

addEdge

void addEdge(T src,
             T dst,
             U label)
adds an edge with some label


removeEdge

void removeEdge(T src,
                T dst,
                U label)
                throws java.lang.UnsupportedOperationException
Throws:
java.lang.UnsupportedOperationException

hasEdge

boolean hasEdge(T src,
                T dst,
                U label)

getEdgeLabels

java.util.Set<? extends U> getEdgeLabels(T src,
                                         T dst)
Returns a set of all labeled edges between node src and node dst

Parameters:
src - source node of the edge
dst - target node of the edge
Returns:
Set of edge labels