soot.toolkits.graph
Interface ExceptionalGraph<N>

All Superinterfaces:
DirectedGraph<N>, Iterable<N>
All Known Implementing Classes:
CompleteBlockGraph, CompleteUnitGraph, ExceptionalBlockGraph, ExceptionalUnitGraph

public interface ExceptionalGraph<N>
extends DirectedGraph<N>

Defines the interface for navigating a control flow graph which distinguishes exceptional control flow.


Nested Class Summary
static interface ExceptionalGraph.ExceptionDest<N>
          Data structure to represent the fact that a given Trap will catch some subset of the exceptions which may be thrown by a given graph node.
 
Method Summary
 Body getBody()
          Returns the Body from which this graph was built.
 List<N> getExceptionalPredsOf(N n)
          Returns a list of nodes which are predecessors of a given node when only exceptional control flow is considered.
 List<N> getExceptionalSuccsOf(N n)
          Returns a list of nodes which are successors of a given node when only exceptional control flow is considered.
 Collection<? extends ExceptionalGraph.ExceptionDest<N>> getExceptionDests(N n)
          Returns a collection of ExceptionDest objects which represent how exceptions thrown by a specified node will be handled.
 List<N> getUnexceptionalPredsOf(N n)
          Returns a list of nodes which are predecessors of a given node when only unexceptional control flow is considered.
 List<N> getUnexceptionalSuccsOf(N n)
          Returns a list of nodes which are successors of a given node when only unexceptional control flow is considered.
 
Methods inherited from interface soot.toolkits.graph.DirectedGraph
getHeads, getPredsOf, getSuccsOf, getTails, iterator, size
 

Method Detail

getBody

Body getBody()
Returns the Body from which this graph was built.

Returns:
the Body from which this graph was built.

getUnexceptionalPredsOf

List<N> getUnexceptionalPredsOf(N n)
Returns a list of nodes which are predecessors of a given node when only unexceptional control flow is considered.

Parameters:
n - The node whose predecessors are to be returned.
Returns:
a List of the nodes in this graph from which there is an unexceptional edge to n.

getUnexceptionalSuccsOf

List<N> getUnexceptionalSuccsOf(N n)
Returns a list of nodes which are successors of a given node when only unexceptional control flow is considered.

Parameters:
n - The node whose successors are to be returned.
Returns:
a List of nodes in this graph to which there is an unexceptional edge from n.

getExceptionalPredsOf

List<N> getExceptionalPredsOf(N n)
Returns a list of nodes which are predecessors of a given node when only exceptional control flow is considered.

Parameters:
n - The node whose predecessors are to be returned.
Returns:
a List of nodes in this graph from which there is an exceptional edge to n.

getExceptionalSuccsOf

List<N> getExceptionalSuccsOf(N n)
Returns a list of nodes which are successors of a given node when only exceptional control flow is considered.

Parameters:
n - The node whose successors are to be returned.
Returns:
a List of nodes in this graph to which there is an exceptional edge from n.

getExceptionDests

Collection<? extends ExceptionalGraph.ExceptionDest<N>> getExceptionDests(N n)
Returns a collection of ExceptionDest objects which represent how exceptions thrown by a specified node will be handled.

Parameters:
n - The node for which to provide exception information.
Returns:
a collection of ExceptionDest objects describing the traps and handlers, if any, which catch the exceptions which may be thrown by n.