public class UseDependencyContractApp extends AbstractContractRuleApp
| Modifier and Type | Field and Description |
|---|---|
private List<LocationVariable> |
heapContext |
private PosInOccurrence |
step |
instantiationbuiltInRule, ifInsts, pio| Constructor and Description |
|---|
UseDependencyContractApp(BuiltInRule builtInRule,
PosInOccurrence pio) |
UseDependencyContractApp(BuiltInRule builtInRule,
PosInOccurrence pio,
Contract instantiation,
PosInOccurrence step) |
UseDependencyContractApp(BuiltInRule rule,
PosInOccurrence pio,
ImmutableList<PosInOccurrence> ifInsts,
Contract contract,
PosInOccurrence step) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
complete()
returns true if all variables are instantiated
|
private UseDependencyContractApp |
computeStep(Sequent seq,
Services services) |
List<LocationVariable> |
getHeapContext() |
IObserverFunction |
getObserverFunction(Services services) |
boolean |
isSufficientlyComplete()
returns true if tryToInstantiate may be able to complete the app
|
UseDependencyContractApp |
replacePos(PosInOccurrence newPos) |
UseDependencyContractRule |
rule()
returns the rule of this rule application
|
UseDependencyContractApp |
setContract(Contract contract) |
UseDependencyContractApp |
setIfInsts(ImmutableList<PosInOccurrence> ifInsts) |
UseDependencyContractApp |
setStep(PosInOccurrence p_step) |
PosInOccurrence |
step(Sequent seq,
TermServices services) |
UseDependencyContractApp |
tryToInstantiate(Goal goal)
Tries to complete the rule application from the available information.
|
UseDependencyContractApp |
tryToInstantiateContract(Services services) |
check, getInstantiationexecute, forceInstantiate, ifInsts, posInOccurrence, setMutable, toStringprivate final PosInOccurrence step
private List<LocationVariable> heapContext
public UseDependencyContractApp(BuiltInRule builtInRule, PosInOccurrence pio)
public UseDependencyContractApp(BuiltInRule builtInRule, PosInOccurrence pio, Contract instantiation, PosInOccurrence step)
public UseDependencyContractApp(BuiltInRule rule, PosInOccurrence pio, ImmutableList<PosInOccurrence> ifInsts, Contract contract, PosInOccurrence step)
public UseDependencyContractApp replacePos(PosInOccurrence newPos)
replacePos in interface IBuiltInRuleAppreplacePos in class AbstractBuiltInRuleApppublic boolean isSufficientlyComplete()
IBuiltInRuleAppisSufficientlyComplete in interface IBuiltInRuleAppisSufficientlyComplete in class AbstractBuiltInRuleApppublic boolean complete()
AbstractBuiltInRuleAppcomplete in interface RuleAppcomplete in class AbstractContractRuleAppprivate UseDependencyContractApp computeStep(Sequent seq, Services services)
public PosInOccurrence step(Sequent seq, TermServices services)
public UseDependencyContractApp setStep(PosInOccurrence p_step)
public UseDependencyContractApp setContract(Contract contract)
setContract in class AbstractContractRuleApppublic UseDependencyContractRule rule()
AbstractBuiltInRuleApprule in interface IBuiltInRuleApprule in interface RuleApprule in class AbstractBuiltInRuleApppublic UseDependencyContractApp tryToInstantiate(Goal goal)
IBuiltInRuleAppUserInterfaceControl to complete a built-in rule.
Returns a complete app only if there is exactly one contract.
If you want a complete app for combined contracts, use forceInstantiate instead.
For an example implementation see e.g. UseOperationContractRule or UseDependencyContractRule.tryToInstantiate in interface IBuiltInRuleApptryToInstantiate in class AbstractContractRuleApppublic UseDependencyContractApp tryToInstantiateContract(Services services)
public List<LocationVariable> getHeapContext()
getHeapContext in interface IBuiltInRuleAppgetHeapContext in class AbstractBuiltInRuleApppublic IObserverFunction getObserverFunction(Services services)
getObserverFunction in class AbstractContractRuleApppublic UseDependencyContractApp setIfInsts(ImmutableList<PosInOccurrence> ifInsts)
setIfInsts in interface IBuiltInRuleAppsetIfInsts in class AbstractBuiltInRuleApp