public abstract class PatternElement
extends java.lang.Object
| Constructor and Description |
|---|
PatternElement() |
| Modifier and Type | Method and Description |
|---|---|
abstract boolean |
acceptBranch(Edge edge,
org.apache.bcel.generic.InstructionHandle source)
Return whether or not it is acceptable to take the given branch.
|
protected static BindingSet |
addOrCheckDefinition(java.lang.String varName,
Variable variable,
BindingSet bindingSet)
Add a variable definition to the given BindingSet, or if there is an
existing definition, make sure it is consistent with the new definition.
|
boolean |
allowTrailingEdges()
Return whether or not this PatternElement may match trailing edges.
|
PatternElement |
dominatedBy(java.lang.String dominatedBy)
Set the label of another pattern element whose first matched instruction
must dominate the instruction(s) matched by this element.
|
java.lang.String |
getDominatedBy()
Get the label of the pattern element whose first matched instruction must
dominate the instruction(s) matched by this element.
|
java.lang.String |
getLabel()
Get the label of this PatternElement.
|
PatternElement |
getNext()
Get the next PatternElement.
|
PatternElement |
label(java.lang.String label)
Set a label for this PatternElement.
|
static Variable |
lookup(java.lang.String varName,
BindingSet bindingSet)
Look up a variable definition in given BindingSet.
|
abstract 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.
|
abstract int |
maxOccur()
Return the maximum number of instructions this PatternElement must match
in the ByteCodePattern.
|
abstract 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.
|
void |
setIndex(int index)
Set the index.
|
void |
setNext(PatternElement patternElement)
Set the next PatternElement.
|
java.lang.String |
toString() |
public PatternElement getNext()
public void setNext(PatternElement patternElement)
public PatternElement label(java.lang.String label)
label - the labelpublic java.lang.String getLabel()
public PatternElement dominatedBy(java.lang.String dominatedBy)
public java.lang.String getDominatedBy()
public void setIndex(int index)
public PatternElement setAllowTrailingEdges(boolean allowTrailingEdges)
allowTrailingEdges - true if trailing edges may be matched, false if trailing edges
will never be matchedpublic boolean allowTrailingEdges()
public static Variable lookup(java.lang.String varName, BindingSet bindingSet)
varName - the name of the variablebindingSet - the BindingSet to look in@CheckForNull public abstract MatchResult match(org.apache.bcel.generic.InstructionHandle handle, org.apache.bcel.generic.ConstantPoolGen cpg, ValueNumberFrame before, ValueNumberFrame after, BindingSet bindingSet) throws DataflowAnalysisException
handle - 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 abstract boolean acceptBranch(Edge edge, org.apache.bcel.generic.InstructionHandle source)
edge - the Edge representing the branchsource - the source instruction of the branchpublic abstract int minOccur()
public abstract int maxOccur()
protected static BindingSet addOrCheckDefinition(java.lang.String varName, Variable variable, BindingSet bindingSet)
varName - the name of the variablevariable - the Variable which should be added or checked for consistencybindingSet - the existing set of bindingspublic java.lang.String toString()
toString in class java.lang.ObjectFindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.