public class PatternMatcher extends java.lang.Object implements DFSEdgeTypes
Match a ByteCodePattern against the code of a method, represented by a CFG. Produces some number of ByteCodePatternMatch objects, which indicate how the pattern matched the bytecode instructions in the method.
This code is a hack and should probably be rewritten.
ByteCodePattern
BACK_EDGE, CROSS_EDGE, FORWARD_EDGE, TREE_EDGE, UNKNOWN_EDGE
Constructor and Description |
---|
PatternMatcher(ByteCodePattern pattern,
ClassContext classContext,
org.apache.bcel.classfile.Method method)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
java.util.Iterator<ByteCodePatternMatch> |
byteCodePatternMatchIterator()
Return an Iterator over the ByteCodePatternMatch objects representing
successful matches of the ByteCodePattern.
|
PatternMatcher |
execute()
Search for examples of the ByteCodePattern.
|
public PatternMatcher(ByteCodePattern pattern, ClassContext classContext, org.apache.bcel.classfile.Method method) throws CFGBuilderException, DataflowAnalysisException
pattern
- the ByteCodePattern to look for examples ofclassContext
- ClassContext for the class to analyzemethod
- the Method to analyzeCFGBuilderException
DataflowAnalysisException
public PatternMatcher execute() throws DataflowAnalysisException
DataflowAnalysisException
- if the ValueNumberAnalysis did not produce useful values for
the methodpublic java.util.Iterator<ByteCodePatternMatch> byteCodePatternMatchIterator()
SpotBugs is licensed under the LGPL.