soot.toolkits.graph
Interface ExceptionalGraph

All Superinterfaces:
DirectedGraph
All Known Implementing Classes:
ExceptionalBlockGraph, ExceptionalUnitGraph

public interface ExceptionalGraph
extends DirectedGraph

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


Nested Class Summary
static interface ExceptionalGraph.ExceptionDest
          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 getExceptionalPredsOf(Object n)
          Returns a list of nodes which are predecessors of a given node when only exceptional control flow is considered.
 List getExceptionalSuccsOf(Object n)
          Returns a list of nodes which are successors of a given node when only exceptional control flow is considered.
 Collection getExceptionDests(Object n)
          Returns a collection of ExceptionDest objects which represent how exceptions thrown by a specified node will be handled.
 List getUnexceptionalPredsOf(Object n)
          Returns a list of nodes which are predecessors of a given node when only unexceptional control flow is considered.
 List getUnexceptionalSuccsOf(Object 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

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

Returns:
the Body from which this graph was built.

getUnexceptionalPredsOf

public List getUnexceptionalPredsOf(Object 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

public List getUnexceptionalSuccsOf(Object 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

public List getExceptionalPredsOf(Object 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

public List getExceptionalSuccsOf(Object 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

public Collection getExceptionDests(Object 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.