public class MatchAny extends PatternElement
A "meta" PatternElement that matches any of a list of other child PatternElements. An example of how this is useful is that you might want to match invocations of any of a number of different methods. To do this, you can create a MatchAny with some number of Invoke elements as children.
Note that the minOccur() and maxOccur() counts of the child PatternElements are ignored. A MatchAny element always matches exactly one instruction.
PatternElement| Constructor and Description |
|---|
MatchAny(PatternElement[] childList)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
acceptBranch(Edge edge,
org.apache.bcel.generic.InstructionHandle source)
Return whether or not it is acceptable to take the given branch.
|
PatternElement |
label(java.lang.String label)
Set a label for this PatternElement.
|
MatchResult |
match(org.apache.bcel.generic.InstructionHandle handle,
org.apache.bcel.generic.ConstantPoolGen cpg,
ValueNumberFrame before,
ValueNumberFrame after,
BindingSet bindingSet)
Return whether or not this element matches the given instruction with the
given Bindings in effect.
|
int |
maxOccur()
Return the maximum number of instructions this PatternElement must match
in the ByteCodePattern.
|
int |
minOccur()
Return the minimum number of instructions this PatternElement must match
in the ByteCodePattern.
|
PatternElement |
setAllowTrailingEdges(boolean allowTrailingEdges)
Set whether or not this PatternElement allows trailing edges to be
matched.
|
addOrCheckDefinition, allowTrailingEdges, dominatedBy, getDominatedBy, getLabel, getNext, lookup, setIndex, setNext, toStringpublic MatchAny(PatternElement[] childList)
childList - list of child PatternElementspublic PatternElement label(java.lang.String label)
PatternElementlabel in class PatternElementlabel - the labelpublic PatternElement setAllowTrailingEdges(boolean allowTrailingEdges)
PatternElementsetAllowTrailingEdges in class PatternElementallowTrailingEdges - true if trailing edges may be matched, false if trailing edges
will never be matchedpublic MatchResult match(org.apache.bcel.generic.InstructionHandle handle, org.apache.bcel.generic.ConstantPoolGen cpg, ValueNumberFrame before, ValueNumberFrame after, BindingSet bindingSet) throws DataflowAnalysisException
PatternElementmatch in class PatternElementhandle - the instructioncpg - the ConstantPoolGen from the methodbefore - the ValueNumberFrame representing values in the Java stack
frame just before the execution of the instructionafter - the ValueNumberFrame representing values in the Java stack
frame just after the execution of the instructionbindingSet - the set of BindingsDataflowAnalysisExceptionpublic boolean acceptBranch(Edge edge, org.apache.bcel.generic.InstructionHandle source)
PatternElementacceptBranch in class PatternElementedge - the Edge representing the branchsource - the source instruction of the branchpublic int minOccur()
PatternElementminOccur in class PatternElementpublic int maxOccur()
PatternElementmaxOccur in class PatternElementSpotBugs is licensed under the LGPL.