Class ManualFieldPolicy
java.lang.Object
com.ibm.wala.demandpa.alg.refinepolicy.ManualFieldPolicy
- All Implemented Interfaces:
FieldRefinePolicy
- Direct Known Subclasses:
ContainersFieldPolicy
Manually annotated policy for refining field accesses.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleannextPass()booleanshouldRefine(IField field, PointerKey basePtr, PointerKey val, IFlowLabel label, StateMachine.State state)
-
Field Details
-
refinePattern
-
-
Constructor Details
-
ManualFieldPolicy
- Parameters:
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 patternPattern.compile("Ljava/util")will cause all fields of classes in thejava.utilpackage to be refined.
-
-
Method Details
-
shouldRefine
public boolean shouldRefine(IField field, PointerKey basePtr, PointerKey val, IFlowLabel label, StateMachine.State state) - Specified by:
shouldRefinein interfaceFieldRefinePolicy- Parameters:
field- the accessed fieldbasePtr- the base pointer of the access- Returns:
trueif match edges for the field access should be refined. Otherwise,falseis returned, indicating that the field can be handled with match edges.
-
nextPass
public boolean nextPass()- Specified by:
nextPassin interfaceFieldRefinePolicy- Returns:
trueif more refinement can be done, and hence another pass can be attempted;falseotherwise
-
getHistory
- Returns:
- a String representation of the decisions made by this
-