Package edu.umd.cs.findbugs.ba.bcp
Class ByteCodePattern
java.lang.Object
edu.umd.cs.findbugs.ba.bcp.ByteCodePattern
A ByteCodePattern is a pattern matching a sequence of bytecode instructions.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate int
private PatternElement
private int
private PatternElement
private int
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionadd
(PatternElement element) Add a PatternElement to the end of the pattern.private void
addElement
(PatternElement element) private void
addWild
(int numWild) Add a wildcard to match between 0 and given number of instructions.Get a dummy variable name.getFirst()
Get the first PatternElement in the pattern.private Wild
setInterElementWild
(int numWild) Set number of inter-element wildcards to create between explicit PatternElements.
-
Field Details
-
first
-
last
-
interElementWild
private int interElementWild -
numElements
private int numElements -
dummyVariableCount
private int dummyVariableCount
-
-
Constructor Details
-
ByteCodePattern
public ByteCodePattern()
-
-
Method Details
-
add
Add a PatternElement to the end of the pattern.- Parameters:
element
- the PatternElement- Returns:
- this object
-
addWild
Add a wildcard to match between 0 and given number of instructions. If there is already a wildcard at the end of the current pattern, resets its max value to that given.- Parameters:
numWild
- maximum number of instructions to be matched by the wildcard
-
setInterElementWild
Set number of inter-element wildcards to create between explicit PatternElements. By default, no implicit wildcards are created.- Parameters:
numWild
- the number of wildcard instructions which may be matched between explicit PatternElements- Returns:
- this object
-
getFirst
Get the first PatternElement in the pattern. -
dummyVariable
Get a dummy variable name. The name returned will begin with the'$'
character, and will be different than any previous dummy variable name allocated by this object. Dummy variable names are useful for creating PatternElements where you don't care whether the value it uses is the same as one used by another PatternElement. -
addInterElementWild
private void addInterElementWild() -
addElement
-
isLastWild
-