public class ContractRuleApp extends AbstractContractRuleApp
| Modifier and Type | Field and Description |
|---|---|
private java.util.List<LocationVariable> |
heapContext |
instantiationbuiltInRule, ifInsts, pio| Modifier | Constructor and Description |
|---|---|
(package private) |
ContractRuleApp(BuiltInRule rule,
PosInOccurrence pio) |
private |
ContractRuleApp(BuiltInRule rule,
PosInOccurrence pio,
Contract instantiation) |
| Modifier and Type | Method and Description |
|---|---|
ContractRuleApp |
forceInstantiate(Goal goal) |
java.util.List<LocationVariable> |
getHeapContext() |
IObserverFunction |
getObserverFunction(Services services) |
boolean |
isSufficientlyComplete()
returns true if tryToInstantiate may be able to complete the app
|
Term |
programTerm() |
ContractRuleApp |
replacePos(PosInOccurrence newPos) |
UseOperationContractRule |
rule()
returns the rule of this rule application
|
ContractRuleApp |
setContract(Contract contract) |
ContractRuleApp |
setIfInsts(ImmutableList<PosInOccurrence> ifInsts) |
ContractRuleApp |
tryToInstantiate(Goal goal)
Tries to complete the rule application from the available information.
|
check, complete, getInstantiationexecute, ifInsts, posInOccurrence, setMutable, toStringprivate java.util.List<LocationVariable> heapContext
ContractRuleApp(BuiltInRule rule, PosInOccurrence pio)
private ContractRuleApp(BuiltInRule rule, PosInOccurrence pio, Contract instantiation)
public ContractRuleApp replacePos(PosInOccurrence newPos)
replacePos in interface IBuiltInRuleAppreplacePos in class AbstractBuiltInRuleApppublic ContractRuleApp setContract(Contract contract)
setContract in class AbstractContractRuleApppublic UseOperationContractRule rule()
AbstractBuiltInRuleApprule in interface IBuiltInRuleApprule in interface RuleApprule in class AbstractBuiltInRuleApppublic boolean isSufficientlyComplete()
IBuiltInRuleAppisSufficientlyComplete in interface IBuiltInRuleAppisSufficientlyComplete in class AbstractBuiltInRuleApppublic ContractRuleApp 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 ContractRuleApp forceInstantiate(Goal goal)
forceInstantiate in interface IBuiltInRuleAppforceInstantiate in class AbstractBuiltInRuleApppublic ContractRuleApp setIfInsts(ImmutableList<PosInOccurrence> ifInsts)
setIfInsts in interface IBuiltInRuleAppsetIfInsts in class AbstractBuiltInRuleApppublic java.util.List<LocationVariable> getHeapContext()
getHeapContext in interface IBuiltInRuleAppgetHeapContext in class AbstractBuiltInRuleApppublic Term programTerm()
public IObserverFunction getObserverFunction(Services services)
getObserverFunction in class AbstractContractRuleApp