Class AbstractRefinementPolicy
- java.lang.Object
-
- com.ibm.wala.demandpa.alg.refinepolicy.AbstractRefinementPolicy
-
- All Implemented Interfaces:
RefinementPolicy
- Direct Known Subclasses:
ManualRefinementPolicy
,SinglePassRefinementPolicy
,TunedRefinementPolicy
public abstract class AbstractRefinementPolicy extends Object implements RefinementPolicy
DefaultRefinementPolicy
implementation, delegating to some providedFieldRefinePolicy
andCallGraphRefinePolicy
-
-
Field Summary
Fields Modifier and Type Field Description protected int[]
budgetPerPass
protected CallGraphRefinePolicy
cgRefinePolicy
protected static int
DEFAULT_NUM_PASSES
protected FieldRefinePolicy
fieldRefinePolicy
protected static int
LONGER_PASS_BUDGET
protected int
numPasses
-
Constructor Summary
Constructors Constructor Description AbstractRefinementPolicy(FieldRefinePolicy fieldRefinePolicy, CallGraphRefinePolicy cgRefinePolicy)
AbstractRefinementPolicy(FieldRefinePolicy fieldRefinePolicy, CallGraphRefinePolicy cgRefinePolicy, int numPasses, int[] budgetPerPass)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getBudgetForPass(int passNum)
CallGraphRefinePolicy
getCallGraphRefinePolicy()
FieldRefinePolicy
getFieldRefinePolicy()
int
getNumPasses()
boolean
nextPass()
-
-
-
Field Detail
-
DEFAULT_NUM_PASSES
protected static final int DEFAULT_NUM_PASSES
- See Also:
- Constant Field Values
-
LONGER_PASS_BUDGET
protected static final int LONGER_PASS_BUDGET
- See Also:
- Constant Field Values
-
fieldRefinePolicy
protected final FieldRefinePolicy fieldRefinePolicy
-
cgRefinePolicy
protected final CallGraphRefinePolicy cgRefinePolicy
-
numPasses
protected final int numPasses
-
budgetPerPass
protected final int[] budgetPerPass
-
-
Constructor Detail
-
AbstractRefinementPolicy
public AbstractRefinementPolicy(FieldRefinePolicy fieldRefinePolicy, CallGraphRefinePolicy cgRefinePolicy, int numPasses, int[] budgetPerPass)
-
AbstractRefinementPolicy
public AbstractRefinementPolicy(FieldRefinePolicy fieldRefinePolicy, CallGraphRefinePolicy cgRefinePolicy)
-
-
Method Detail
-
getBudgetForPass
public int getBudgetForPass(int passNum)
- Specified by:
getBudgetForPass
in interfaceRefinementPolicy
- Returns:
- the maximum number of nodes to traverse in pass
passNum
-
getCallGraphRefinePolicy
public CallGraphRefinePolicy getCallGraphRefinePolicy()
- Specified by:
getCallGraphRefinePolicy
in interfaceRefinementPolicy
- Returns:
- the call graph refinement policy
-
getFieldRefinePolicy
public FieldRefinePolicy getFieldRefinePolicy()
- Specified by:
getFieldRefinePolicy
in interfaceRefinementPolicy
- Returns:
- the field refinement policy
-
getNumPasses
public int getNumPasses()
- Specified by:
getNumPasses
in interfaceRefinementPolicy
- Returns:
- the maximum number of refinement iterations for the query
-
nextPass
public boolean nextPass()
- Specified by:
nextPass
in interfaceRefinementPolicy
- Returns:
true
if more refinement can be done, and hence another pass can be attempted;false
otherwise
-
-