public class ExecutionVariableExtractor extends AbstractUpdateExtractor
IExecutionVariables.| Modifier and Type | Class and Description | 
|---|---|
static class  | 
ExecutionVariableExtractor.ExtractedExecutionValue
The  
IExecutionValue instantiated by the ExecutionVariableExtractor. | 
static class  | 
ExecutionVariableExtractor.ExtractedExecutionVariable
The  
IExecutionVariable instantiated by the ExecutionVariableExtractor. | 
private static class  | 
ExecutionVariableExtractor.LocationDefinition
Utility class representing a location. 
 | 
private static class  | 
ExecutionVariableExtractor.ParentDefinition
Utility class representing a parent definition. 
 | 
private class  | 
ExecutionVariableExtractor.StateExecutionVariable
The  
IExecutionVariable instantiated by the ExecutionVariableExtractor. | 
AbstractUpdateExtractor.ExecutionVariableValuePair, AbstractUpdateExtractor.ExtractLocationParameter, AbstractUpdateExtractor.NodeGoal| Modifier and Type | Field and Description | 
|---|---|
private Term | 
additionalCondition
An optional additional condition. 
 | 
private java.util.Map<ExecutionVariableExtractor.LocationDefinition,ExecutionVariableExtractor.StateExecutionVariable> | 
allStateVariables
The found  
IExecutionVariables available via analyse(). | 
private java.util.Set<AbstractUpdateExtractor.ExtractLocationParameter> | 
currentLocations
The current locations. 
 | 
private IExecutionNode<?> | 
executionNode
The current  
IExecutionNode. | 
private Term | 
layoutTerm
The layout term. 
 | 
private java.util.Set<Term> | 
objectsToIgnore
The objects to ignore. 
 | 
private boolean | 
simplifyConditions
true simplify conditions, false do not simplify conditions. | 
modalityPio, node| Constructor and Description | 
|---|
ExecutionVariableExtractor(Node node,
                          PosInOccurrence modalityPio,
                          IExecutionNode<?> executionNode,
                          Term condition,
                          boolean simplifyConditions)
Constructor. 
 | 
collectAdditionalUpdates, collectLocationsFromHeapTerms, collectLocationsFromHeapUpdate, collectLocationsFromTerm, collectLocationsFromTerm, collectLocationsFromUpdates, computeBranchCondition, computeInitialObjectsToIgnore, computeOriginalUpdates, computeValueConditions, computeVariableValuePairs, containsImplicitProgramVariable, countOpenChildren, createLocationPredicateAndTerm, extractLocationsFromSequent, extractLocationsFromTerm, fillInitialObjectsToIgnoreRecursively, getProof, getRoot, getServices, hasFreeVariables, isImplicitProgramVariable, isParentReachedOnAllChildGoals, iterateBackOnParents, removeImplicitSubTermsFromPathConditionprivate final IExecutionNode<?> executionNode
IExecutionNode.private final Term additionalCondition
private final Term layoutTerm
private final java.util.Set<AbstractUpdateExtractor.ExtractLocationParameter> currentLocations
private final java.util.Set<Term> objectsToIgnore
private final java.util.Map<ExecutionVariableExtractor.LocationDefinition,ExecutionVariableExtractor.StateExecutionVariable> allStateVariables
IExecutionVariables available via analyse().private final boolean simplifyConditions
true simplify conditions, false do not simplify conditions.public ExecutionVariableExtractor(Node node, PosInOccurrence modalityPio, IExecutionNode<?> executionNode, Term condition, boolean simplifyConditions) throws ProofInputException
node - The Node which provides the state.modalityPio - The PosInOccurrence in the Node.executionNode - The current IExecutionNode.condition - An optional additional condition.simplifyConditions - true simplify conditions, false do not simplify conditions.ProofInputException - Occurred Exceptionpublic IExecutionVariable[] analyse() throws ProofInputException
IExecutionVariables.IExecutionVariables representing the current state.ProofInputException - Occurred Exception.protected void analyzeTreeStructure(java.util.Set<AbstractUpdateExtractor.ExecutionVariableValuePair> pairs, java.util.Map<ExecutionVariableExtractor.LocationDefinition,java.util.List<AbstractUpdateExtractor.ExecutionVariableValuePair>> topVariables, java.util.Map<ExecutionVariableExtractor.ParentDefinition,java.util.Map<ExecutionVariableExtractor.LocationDefinition,java.util.List<AbstractUpdateExtractor.ExecutionVariableValuePair>>> contentMap)
ExecutionVariableValuePairs.pairs - The ExecutionVariableValuePairs to analyze.topVariables - The state locations,contentMap - The child locations.protected IExecutionVariable createVariablesValueStructure(java.util.List<AbstractUpdateExtractor.ExecutionVariableValuePair> pairs, java.util.Map<ExecutionVariableExtractor.ParentDefinition,java.util.Map<ExecutionVariableExtractor.LocationDefinition,java.util.List<AbstractUpdateExtractor.ExecutionVariableValuePair>>> contentMap, ExecutionVariableExtractor.ExtractedExecutionValue parentValue, ImmutableList<Term> alreadyVisitedObjects) throws ProofInputException
IExecutionVariable for the given ExecutionVariableValuePairs.pairs - The ExecutionVariableValuePairs to represent.contentMap - The Map providing child content information.parentValue - The optional parent IExecutionValue.alreadyVisitedObjects - The value Terms of already visited objects on the current path in the variable-value-hierarchy.IExecutionVariable.ProofInputException - Occurred Exception.protected void createValues(IExecutionVariable variable, java.util.List<AbstractUpdateExtractor.ExecutionVariableValuePair> pairs, AbstractUpdateExtractor.ExecutionVariableValuePair firstPair, java.util.Map<ExecutionVariableExtractor.ParentDefinition,java.util.Map<ExecutionVariableExtractor.LocationDefinition,java.util.List<AbstractUpdateExtractor.ExecutionVariableValuePair>>> contentMap, java.util.List<IExecutionValue> valueListToFill, ImmutableList<Term> alreadyVisitedObjects) throws ProofInputException
IExecutionValues of the given IExecutionVariable.variable - The IExecutionVariable.pairs - The ExecutionVariableValuePairs which provides the content.firstPair - The first entry in the ExecutionVariableValuePairs.contentMap - The content Map.valueListToFill - The result List to fill.alreadyVisitedObjects - The value Terms of already visited objects on the current path in the variable-value-hierarchy.ProofInputException - Occurred Exception.protected Pair<java.lang.Boolean,ImmutableList<Term>> updateAlreadyVisitedObjects(ImmutableList<Term> alreadyVisitedObjects, Term value)
alreadyVisitedObjects - The value Terms of already visited objects on the current path in the variable-value-hierarchy.value - The current value.