public class ManualFieldPolicy extends java.lang.Object implements FieldRefinePolicy
| Modifier and Type | Field and Description |
|---|---|
protected java.util.regex.Pattern |
refinePattern |
| Constructor and Description |
|---|
ManualFieldPolicy(IClassHierarchy cha,
java.util.regex.Pattern refinePattern) |
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
getHistory() |
boolean |
nextPass() |
boolean |
shouldRefine(IField field,
PointerKey basePtr,
PointerKey val,
IFlowLabel label,
StateMachine.State state) |
public ManualFieldPolicy(IClassHierarchy cha, java.util.regex.Pattern refinePattern)
refinePattern - a pattern for detecting which match edges to refine. If the declaring
class of the field related to the match edge matches the pattern, the match edge will
be refined. For example, the pattern Pattern.compile("Ljava/util") will cause all
fields of classes in the java.util package to be refined.public boolean shouldRefine(IField field, PointerKey basePtr, PointerKey val, IFlowLabel label, StateMachine.State state)
shouldRefine in interface FieldRefinePolicyfield - the accessed fieldbasePtr - the base pointer of the accesstrue if match edges for the field access should be refined. Otherwise, false is returned, indicating that the field can be handled with match edges.public boolean nextPass()
nextPass in interface FieldRefinePolicytrue if more refinement can be done, and hence another pass can be attempted;
false otherwisepublic java.lang.String getHistory()