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
DefaultRefinementPolicyimplementation, delegating to some providedFieldRefinePolicyandCallGraphRefinePolicy
-
-
Field Summary
Fields Modifier and Type Field Description protected int[]budgetPerPassprotected CallGraphRefinePolicycgRefinePolicyprotected static intDEFAULT_NUM_PASSESprotected FieldRefinePolicyfieldRefinePolicyprotected static intLONGER_PASS_BUDGETprotected intnumPasses
-
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 intgetBudgetForPass(int passNum)CallGraphRefinePolicygetCallGraphRefinePolicy()FieldRefinePolicygetFieldRefinePolicy()intgetNumPasses()booleannextPass()
-
-
-
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:
getBudgetForPassin interfaceRefinementPolicy- Returns:
- the maximum number of nodes to traverse in pass
passNum
-
getCallGraphRefinePolicy
public CallGraphRefinePolicy getCallGraphRefinePolicy()
- Specified by:
getCallGraphRefinePolicyin interfaceRefinementPolicy- Returns:
- the call graph refinement policy
-
getFieldRefinePolicy
public FieldRefinePolicy getFieldRefinePolicy()
- Specified by:
getFieldRefinePolicyin interfaceRefinementPolicy- Returns:
- the field refinement policy
-
getNumPasses
public int getNumPasses()
- Specified by:
getNumPassesin interfaceRefinementPolicy- Returns:
- the maximum number of refinement iterations for the query
-
nextPass
public boolean nextPass()
- Specified by:
nextPassin interfaceRefinementPolicy- Returns:
trueif more refinement can be done, and hence another pass can be attempted;falseotherwise
-
-