public class DelegatingFieldRefinePolicy extends Object implements FieldRefinePolicy
Constructor and Description |
---|
DelegatingFieldRefinePolicy(FieldRefinePolicy a,
FieldRefinePolicy b) |
Modifier and Type | Method and Description |
---|---|
boolean |
nextPass() |
boolean |
shouldRefine(IField field,
PointerKey basePtr,
PointerKey val,
IFlowLabel label,
StateMachine.State state)
returns
true if
A.shouldRefine(field) || B.shouldRefine(field) . |
public DelegatingFieldRefinePolicy(FieldRefinePolicy a, FieldRefinePolicy b)
public boolean nextPass()
nextPass
in interface FieldRefinePolicy
true
if more refinement can be done, and hence another pass can be attempted;
false
otherwisepublic boolean shouldRefine(IField field, PointerKey basePtr, PointerKey val, IFlowLabel label, StateMachine.State state)
true
if
A.shouldRefine(field) || B.shouldRefine(field)
. Note that
if A.shouldRefine(field)
is true
,
B.shouldRefine(field)
is not called.shouldRefine
in interface FieldRefinePolicy
field
- 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.