Package edu.umd.cs.findbugs.ba
Class SimplePathEnumerator
java.lang.Object
edu.umd.cs.findbugs.ba.SimplePathEnumerator
- All Implemented Interfaces:
DFSEdgeTypes
,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:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
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
ConstructorDescriptionSimplePathEnumerator
(CFG cfg, int maxPaths) Constructor; max work is set to DEFAULT_MAX_WORK.SimplePathEnumerator
(CFG cfg, int maxPaths, int maxWork) Constructor. -
Method Summary
-
Field Details
-
DEFAULT_MAX_WORK
public static final int DEFAULT_MAX_WORKDefault number of steps to be performed in path enumeration.- See Also:
-
-
Constructor Details
-
SimplePathEnumerator
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
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 Details
-
enumerate
Enumerate the simple paths.- Returns:
- this object
-
iterator
Iterate over simple paths.
-