Package edu.umd.cs.findbugs.ba
Class SimplePathEnumerator
- java.lang.Object
-
- edu.umd.cs.findbugs.ba.SimplePathEnumerator
-
- All Implemented Interfaces:
DFSEdgeTypes
,EdgeTypes
,DFSEdgeTypes
public class SimplePathEnumerator extends java.lang.Object implements EdgeTypes, DFSEdgeTypes
Object to enumerate (some subset of) the simple paths in a CFG. A simple path is a path from entry to exit, ignoring backedges and unhandled exceptions.
FIXME: instead of storing the simple paths, should invoke a callback as each simple path is produced. That would save memory.
- Author:
- David Hovemeyer
- See Also:
CFG
-
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_MAX_WORK
Default number of steps to be performed in path enumeration.-
Fields inherited from interface edu.umd.cs.findbugs.graph.DFSEdgeTypes
BACK_EDGE, CROSS_EDGE, FORWARD_EDGE, TREE_EDGE, UNKNOWN_EDGE
-
Fields inherited from interface edu.umd.cs.findbugs.ba.EdgeTypes
BACKEDGE_SOURCE_EDGE, BACKEDGE_TARGET_EDGE, CHECKED_EXCEPTIONS_FLAG, EXIT_EDGE, EXPLICIT_EXCEPTIONS_FLAG, FALL_THROUGH_EDGE, GOTO_EDGE, HANDLED_EXCEPTION_EDGE, IFCMP_EDGE, JSR_EDGE, RET_EDGE, RETURN_EDGE, START_EDGE, SWITCH_DEFAULT_EDGE, SWITCH_EDGE, UNHANDLED_EXCEPTION_EDGE, UNKNOWN_EDGE
-
-
Constructor Summary
Constructors Constructor Description SimplePathEnumerator(CFG cfg, int maxPaths)
Constructor; max work is set to DEFAULT_MAX_WORK.SimplePathEnumerator(CFG cfg, int maxPaths, int maxWork)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SimplePathEnumerator
enumerate()
Enumerate the simple paths.java.util.Iterator<java.util.List<Edge>>
iterator()
Iterate over simple paths.
-
-
-
Field Detail
-
DEFAULT_MAX_WORK
public static final int DEFAULT_MAX_WORK
Default number of steps to be performed in path enumeration.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
SimplePathEnumerator
public SimplePathEnumerator(CFG cfg, int maxPaths, int maxWork)
Constructor.- Parameters:
cfg
- the control flow graph to enumerate simple paths ofmaxPaths
- maximum number of simple paths to findmaxWork
- maximum number of steps to be performed in the path enumeration (to handle exponential blowup of search space)
-
SimplePathEnumerator
public SimplePathEnumerator(CFG cfg, int maxPaths)
Constructor; max work is set to DEFAULT_MAX_WORK.- Parameters:
cfg
- the control flow graph to enumerate simple paths ofmaxPaths
- maximum number of simple paths to find
-
-
Method Detail
-
enumerate
public SimplePathEnumerator enumerate()
Enumerate the simple paths.- Returns:
- this object
-
iterator
public java.util.Iterator<java.util.List<Edge>> iterator()
Iterate over simple paths.
-
-