public class ExecutionBranchCondition extends AbstractExecutionNode<SourceElement> implements IExecutionBranchCondition
IExecutionBranchCondition.| Modifier and Type | Field and Description |
|---|---|
private String |
additionalBranchLabel
The optional additional branch label.
|
private Term |
branchCondition
The
Term which represents the branch condition. |
private String |
formatedBranchCondition
The human readable branch condition.
|
private String |
formatedPathCondition
The human readable path condition to reach this node.
|
private Term[] |
mergedBranchCondtions
Contains the merged branch conditions.
|
private List<Node> |
mergedProofNodes
Merged branch conditions.
|
private Term |
pathCondition
The path condition to reach this node.
|
INTERNAL_NODE_NAME_END, INTERNAL_NODE_NAME_START| Constructor and Description |
|---|
ExecutionBranchCondition(ITreeSettings settings,
Node proofNode,
String additionalBranchLabel)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addMergedProofNode(Node node)
Adds a merged proof
Node. |
SourceElement |
getActiveStatement()
Returns the active statement which is executed in the code.
|
String |
getAdditionalBranchLabel()
Returns the optional additional branch label.
|
Term |
getBranchCondition()
Returns the branch condition as
Term. |
String |
getElementType()
Returns a human readable element type name.
|
String |
getFormatedBranchCondition()
Returns the human readable branch condition as string.
|
String |
getFormatedPathCondition()
Returns the human readable path condition to reach this node as string.
|
Term[] |
getMergedBranchCondtions()
Returns the branch condition
Terms. |
Node[] |
getMergedProofNodes()
Returns the branch condition nodes in KeY's proof tree
which are merged into this
IExecutionBranchCondition. |
Term |
getPathCondition()
Returns the path condition to reach this node as
Term. |
boolean |
isBranchConditionComputed()
Checks if the value of
IExecutionBranchCondition.getBranchCondition() is already computed. |
boolean |
isMergedBranchCondition()
Checks if this branch condition is a merged one.
|
boolean |
isPathConditionChanged()
Checks if this node has changed the path condition of the parent.
|
protected void |
lazyComputeBranchCondition()
Computes the branch condition lazily when
getBranchCondition()
or getFormatedBranchCondition() is called the first time. |
protected IExecutionConstraint[] |
lazyComputeConstraints()
Computes the constraints lazily when
AbstractExecutionNode.getConstraints() is
called the first time. |
protected Term[] |
lazyComputeMergedBranchCondtions()
Computes the branch condition lazily when
getMergedBranchCondtions()
is called the first time. |
protected PosInOccurrence |
lazyComputeModalityPIO()
Computes the
PosInOccurrence lazily when AbstractExecutionNode.getModalityPIO() is
called the first time. |
protected String |
lazyComputeName()
Computes the name of this node lazily when
AbstractExecutionElement.getName()
is called the first time. |
protected void |
lazyComputePathCondition()
Computes the path condition lazily when
getPathCondition()
or getFormatedPathCondition() is called the first time. |
addChild, addCompletedBlock, getActivePositionInfo, getBlockCompletionCondition, getCallStack, getChildren, getCompletedBlocks, getConstraints, getCurrentLayout, getFormatedBlockCompletionCondition, getInitialLayout, getLayoutExtractor, getLayoutsCount, getLayoutsEquivalenceClasses, getModalityPIO, getParent, getVariables, getVariables, lazyComputeBlockCompletionCondition, lazyComputeLayoutExtractor, lazyComputeVariables, lazyComputeVariables, removeChild, removeCompletedBlock, setCallStack, setParentformatTerm, getAppliedRuleApp, getInitConfig, getName, getProof, getProofNode, getProofNodeInfo, getServices, getSettings, isDisposed, isNameComputed, setName, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetActivePositionInfo, getBlockCompletionCondition, getCallStack, getChildren, getCompletedBlocks, getConstraints, getCurrentLayout, getFormatedBlockCompletionCondition, getInitialLayout, getLayoutsCount, getLayoutsEquivalenceClasses, getParent, getVariables, getVariablesgetAppliedRuleApp, getInitConfig, getModalityPIO, getName, getProof, getProofNode, getProofNodeInfo, getServices, getSettings, isDisposedprivate final String additionalBranchLabel
private String formatedBranchCondition
private Term pathCondition
private String formatedPathCondition
private Term[] mergedBranchCondtions
public ExecutionBranchCondition(ITreeSettings settings, Node proofNode, String additionalBranchLabel)
settings - The ITreeSettings to use.proofNode - The Node of KeY's proof tree which is represented by this IExecutionNode.additionalBranchLabel - The optional additional branch label.protected String lazyComputeName() throws ProofInputException
AbstractExecutionElement.getName()
is called the first time.lazyComputeName in class AbstractExecutionElementIExecutionNode.ProofInputExceptionpublic String getElementType()
getElementType in interface IExecutionElementpublic String getFormatedBranchCondition() throws ProofInputException
getFormatedBranchCondition in interface IExecutionBranchConditionProofInputExceptionpublic boolean isBranchConditionComputed()
IExecutionBranchCondition.getBranchCondition() is already computed.isBranchConditionComputed in interface IExecutionBranchConditiontrue value of IExecutionBranchCondition.getBranchCondition() is already computed, false value of IExecutionBranchCondition.getBranchCondition() needs to be computed.public Term getBranchCondition() throws ProofInputException
Returns the branch condition as Term.
If this branch conditions merged proof nodes this Term
is the overall branch condition.
getBranchCondition in interface IExecutionBranchConditionTerm.ProofInputExceptionprotected void lazyComputeBranchCondition()
throws ProofInputException
getBranchCondition()
or getFormatedBranchCondition() is called the first time.ProofInputException - Occurred Exceptionpublic boolean isPathConditionChanged()
isPathConditionChanged in interface IExecutionNode<SourceElement>isPathConditionChanged in class AbstractExecutionNode<SourceElement>true has different path condition compared to its parent, false has same path condition as parent.public Term getPathCondition() throws ProofInputException
Term.getPathCondition in interface IExecutionNode<SourceElement>getPathCondition in class AbstractExecutionNode<SourceElement>Term.ProofInputExceptionpublic String getFormatedPathCondition() throws ProofInputException
getFormatedPathCondition in interface IExecutionNode<SourceElement>getFormatedPathCondition in class AbstractExecutionNode<SourceElement>ProofInputExceptionprotected void lazyComputePathCondition()
throws ProofInputException
getPathCondition()
or getFormatedPathCondition() is called the first time.ProofInputException - Occurred Exceptionpublic void addMergedProofNode(Node node)
Node.node - The proof Node to add.public Node[] getMergedProofNodes()
Returns the branch condition nodes in KeY's proof tree
which are merged into this IExecutionBranchCondition.
It includes also IExecutionElement.getProofNode().
getMergedProofNodes in interface IExecutionBranchConditionpublic Term[] getMergedBranchCondtions() throws ProofInputException
Terms.getMergedBranchCondtions in interface IExecutionBranchConditionTerms.ProofInputExceptionprotected Term[] lazyComputeMergedBranchCondtions() throws ProofInputException
getMergedBranchCondtions()
is called the first time.ProofInputException - Occurred Exceptionpublic boolean isMergedBranchCondition()
isMergedBranchCondition in interface IExecutionBranchConditiontrue is merged branch condition, false is normal branch condition.public String getAdditionalBranchLabel()
getAdditionalBranchLabel in interface IExecutionBranchConditionnull if not available.protected IExecutionConstraint[] lazyComputeConstraints()
AbstractExecutionNode.getConstraints() is
called the first time.lazyComputeConstraints in class AbstractExecutionNode<SourceElement>IExecutionConstraints of the current state.protected PosInOccurrence lazyComputeModalityPIO()
PosInOccurrence lazily when AbstractExecutionNode.getModalityPIO() is
called the first time.lazyComputeModalityPIO in class AbstractExecutionNode<SourceElement>PosInOccurrences of the modality or its updates.public SourceElement getActiveStatement()
getActiveStatement in interface IExecutionNode<SourceElement>getActiveStatement in class AbstractExecutionNode<SourceElement>