Class ConstraintFunctions.TransitiveConstraintFinder
- java.lang.Object
-
- net.ssehub.easy.varModel.model.filter.ConstraintFinder
-
- net.ssehub.easy.reasoning.sseReasoner.functions.ConstraintFunctions.TransitiveConstraintFinder
-
- All Implemented Interfaces:
IConstraintTreeVisitor,ICustomDatatypeVisitor,IDatatypeVisitor,IModelVisitor
- Enclosing class:
- ConstraintFunctions
private static class ConstraintFunctions.TransitiveConstraintFinder extends ConstraintFinder implements IConstraintTreeVisitor, IDatatypeVisitor
A transitive constraint/variables finder.- Author:
- Holger Eichelberger
-
-
Field Summary
Fields Modifier and Type Field Description private booleanaddprivate java.util.Set<AbstractVariable>candidatesprivate java.util.Set<java.lang.Object>doneprivate IModelVisitormVisitorprivate java.util.Set<AbstractVariable>scheduledprivate Projectscopeprivate Projecttargetprivate java.util.Set<AbstractVariable>variables
-
Constructor Summary
Constructors Constructor Description TransitiveConstraintFinder(Project scope, Project target)Creates a finder with search scope and target project.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidaddToVariables(AbstractVariable var)Adds a variable tovariables.private voidhandle(AbstractVariable variable)Handles the occurrence of a variable.protected voidstartAccept(Project project)Starts accepting in the constructor.voidvisit(AbstractVariable var)Call for the top-level variable to be visited.private voidvisit(IDatatype type)Internal method to start visiting a datatype.voidvisitAnnotationVariable(AttributeVariable variable)Visits aAttributeVariable.voidvisitAnyType(AnyType datatype)Is called by an AnyType.voidvisitAttributeAssignment(AttributeAssignment assignment)Visits an attribute assignment.voidvisitBlockExpression(BlockExpression block)Visits the block.voidvisitBooleanType(BooleanType type)Visiting method for visiting aBooleanType.voidvisitComment(Comment comment)Visits a comment.voidvisitCompoundAccess(CompoundAccess access)Visits a compound access node.voidvisitCompoundInitializer(CompoundInitializer initializer)Visits a compound initializer.voidvisitCompoundType(Compound compound)Visiting method for visiting aCompound.voidvisitConstantValue(ConstantValue value)Visits a constant value.voidvisitConstraint(Constraint constraint)Method for visiting a constraint.voidvisitConstraintType(ConstraintType type)Visiting method for visiting aConstraintType.voidvisitContainerInitializer(ContainerInitializer initializer)Visits a container initializer.voidvisitContainerOperationCall(ContainerOperationCall call)Visits a container operation call (e.g.voidvisitDatatype(IDatatype datatype)Is called by an arbitrary data type.voidvisitDecisionVariableDeclaration(DecisionVariableDeclaration decl)This method is used for visiting a decision variable declaration.voidvisitDeferInitExpression(DeferInitExpression expression)Visits a default init expression.voidvisitDerivedType(DerivedDatatype datatype)Is called by anDerivedDatatypedata type.voidvisitEnumType(Enum enumType)Visiting method for visiting aEnum.voidvisitIfThen(IfThen ifThen)Visits an if-then-else expression.voidvisitIntegerType(IntegerType type)Visiting method for visiting aIntegerType.voidvisitLet(Let let)Visits a let expression.voidvisitMetaType(MetaType datatype)Is called by a MetaType.voidvisitMultiAndExpression(MultiAndExpression expression)Visits a multi-and expression.voidvisitOclFeatureCall(OCLFeatureCall call)Visits an OCL feature call.voidvisitOrderedEnumType(OrderedEnum enumType)Visiting method for visiting aOrderredEnum.voidvisitParenthesis(Parenthesis parenthesis)Visits a parenthesis.voidvisitProject(Project project)Method for visiting a project.voidvisitRealType(RealType type)Visiting method for visiting aRealType.voidvisitSelf(Self self)Visits self.voidvisitSequence(Sequence sequence)Method for visiting a sequence.voidvisitSet(Set set)Method for visiting a set.voidvisitStringType(StringType type)Visiting method for visiting aStringType.voidvisitUnresolvedExpression(UnresolvedExpression expression)Visits an unresolved expression.voidvisitVariable(Variable variable)Visits a variable.voidvisitVersionType(VersionType type)Visiting method for visiting aVersionType.-
Methods inherited from class net.ssehub.easy.varModel.model.filter.ConstraintFinder
getAttributeAssignments, getConstraints, getEvalConstraints, visitAttribute, visitComment, visitCompound, visitCompoundAccessStatement, visitDerivedDatatype, visitEnum, visitEnumLiteral, visitFreezeBlock, visitOperationDefinition, visitOrderedEnum, visitPartialEvaluationBlock, visitProjectImport, visitProjectInterface, visitReference
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.ssehub.easy.varModel.model.datatypes.IDatatypeVisitor
visitReference
-
-
-
-
Field Detail
-
add
private boolean add
-
variables
private java.util.Set<AbstractVariable> variables
-
scheduled
private java.util.Set<AbstractVariable> scheduled
-
candidates
private java.util.Set<AbstractVariable> candidates
-
done
private java.util.Set<java.lang.Object> done
-
scope
private Project scope
-
target
private Project target
-
mVisitor
private IModelVisitor mVisitor
-
-
Method Detail
-
startAccept
protected void startAccept(Project project)
Description copied from class:ConstraintFinderStarts accepting in the constructor. Overridden to allow for further initializations.- Overrides:
startAcceptin classConstraintFinder- Parameters:
project- the project to start accepting
-
visit
public void visit(AbstractVariable var)
Call for the top-level variable to be visited.- Parameters:
var- the variable
-
visit
private void visit(IDatatype type)
Internal method to start visiting a datatype. Due to additional checks, please do not visit the type directly.- Parameters:
type- the type to be visited
-
addToVariables
private void addToVariables(AbstractVariable var)
Adds a variable tovariables.- Parameters:
var- the variable
-
visitDecisionVariableDeclaration
public void visitDecisionVariableDeclaration(DecisionVariableDeclaration decl)
Description copied from interface:IModelVisitorThis method is used for visiting a decision variable declaration.- Specified by:
visitDecisionVariableDeclarationin interfaceIModelVisitor- Overrides:
visitDecisionVariableDeclarationin classConstraintFinder- Parameters:
decl- One declaration which should be visited.
-
visitConstraint
public void visitConstraint(Constraint constraint)
Description copied from interface:IModelVisitorMethod for visiting a constraint.- Specified by:
visitConstraintin interfaceIModelVisitor- Overrides:
visitConstraintin classConstraintFinder- Parameters:
constraint- The constraint which should be visited.
-
visitProject
public void visitProject(Project project)
Description copied from interface:IModelVisitorMethod for visiting a project.- Specified by:
visitProjectin interfaceIModelVisitor- Overrides:
visitProjectin classConstraintFinder- Parameters:
project- The project which should be visited.
-
visitConstantValue
public void visitConstantValue(ConstantValue value)
Description copied from interface:IConstraintTreeVisitorVisits a constant value.- Specified by:
visitConstantValuein interfaceIConstraintTreeVisitor- Parameters:
value- the value which should be visited
-
handle
private void handle(AbstractVariable variable)
Handles the occurrence of a variable.- Parameters:
variable- the variable
-
visitVariable
public void visitVariable(Variable variable)
Description copied from interface:IConstraintTreeVisitorVisits a variable.- Specified by:
visitVariablein interfaceIConstraintTreeVisitor- Parameters:
variable- the variable which should be visited
-
visitAnnotationVariable
public void visitAnnotationVariable(AttributeVariable variable)
Description copied from interface:IConstraintTreeVisitorVisits aAttributeVariable.- Specified by:
visitAnnotationVariablein interfaceIConstraintTreeVisitor- Parameters:
variable- the attribute variable which should be visited
-
visitParenthesis
public void visitParenthesis(Parenthesis parenthesis)
Description copied from interface:IConstraintTreeVisitorVisits a parenthesis.- Specified by:
visitParenthesisin interfaceIConstraintTreeVisitor- Parameters:
parenthesis- the parenthesis which should be visited
-
visitComment
public void visitComment(Comment comment)
Description copied from interface:IConstraintTreeVisitorVisits a comment.- Specified by:
visitCommentin interfaceIConstraintTreeVisitor- Parameters:
comment- the comment node which should be visited
-
visitOclFeatureCall
public void visitOclFeatureCall(OCLFeatureCall call)
Description copied from interface:IConstraintTreeVisitorVisits an OCL feature call.- Specified by:
visitOclFeatureCallin interfaceIConstraintTreeVisitor- Parameters:
call- the feature call which should be visited
-
visitLet
public void visitLet(Let let)
Description copied from interface:IConstraintTreeVisitorVisits a let expression.- Specified by:
visitLetin interfaceIConstraintTreeVisitor- Parameters:
let- the let expression which should be visited
-
visitIfThen
public void visitIfThen(IfThen ifThen)
Description copied from interface:IConstraintTreeVisitorVisits an if-then-else expression.- Specified by:
visitIfThenin interfaceIConstraintTreeVisitor- Parameters:
ifThen- the if-then-else expression which should be visited
-
visitContainerOperationCall
public void visitContainerOperationCall(ContainerOperationCall call)
Description copied from interface:IConstraintTreeVisitorVisits a container operation call (e.g. quantors, iterators).- Specified by:
visitContainerOperationCallin interfaceIConstraintTreeVisitor- Parameters:
call- the container operation call
-
visitCompoundAccess
public void visitCompoundAccess(CompoundAccess access)
Description copied from interface:IConstraintTreeVisitorVisits a compound access node.- Specified by:
visitCompoundAccessin interfaceIConstraintTreeVisitor- Parameters:
access- the compound access node
-
visitUnresolvedExpression
public void visitUnresolvedExpression(UnresolvedExpression expression)
Description copied from interface:IConstraintTreeVisitorVisits an unresolved expression. Please note that an unresolved expression may represent a leaf as well as an inner tree node. Typically, visitors shall continue visiting transparently atUnresolvedExpression.getActualExpression().- Specified by:
visitUnresolvedExpressionin interfaceIConstraintTreeVisitor- Parameters:
expression- the expression
-
visitCompoundInitializer
public void visitCompoundInitializer(CompoundInitializer initializer)
Description copied from interface:IConstraintTreeVisitorVisits a compound initializer.- Specified by:
visitCompoundInitializerin interfaceIConstraintTreeVisitor- Parameters:
initializer- the compound initializer node
-
visitContainerInitializer
public void visitContainerInitializer(ContainerInitializer initializer)
Description copied from interface:IConstraintTreeVisitorVisits a container initializer.- Specified by:
visitContainerInitializerin interfaceIConstraintTreeVisitor- Parameters:
initializer- the container initializer node
-
visitSelf
public void visitSelf(Self self)
Description copied from interface:IConstraintTreeVisitorVisits self.- Specified by:
visitSelfin interfaceIConstraintTreeVisitor- Parameters:
self- the self object to visit
-
visitBlockExpression
public void visitBlockExpression(BlockExpression block)
Description copied from interface:IConstraintTreeVisitorVisits the block.- Specified by:
visitBlockExpressionin interfaceIConstraintTreeVisitor- Parameters:
block- the block to be visited
-
visitDeferInitExpression
public void visitDeferInitExpression(DeferInitExpression expression)
Description copied from interface:IConstraintTreeVisitorVisits a default init expression.- Specified by:
visitDeferInitExpressionin interfaceIConstraintTreeVisitor- Parameters:
expression- the expression
-
visitMultiAndExpression
public void visitMultiAndExpression(MultiAndExpression expression)
Description copied from interface:IConstraintTreeVisitorVisits a multi-and expression.- Specified by:
visitMultiAndExpressionin interfaceIConstraintTreeVisitor- Parameters:
expression- the expression to be visited
-
visitDatatype
public void visitDatatype(IDatatype datatype)
Description copied from interface:IDatatypeVisitorIs called by an arbitrary data type.- Specified by:
visitDatatypein interfaceIDatatypeVisitor- Parameters:
datatype- the data type.
-
visitAnyType
public void visitAnyType(AnyType datatype)
Description copied from interface:IDatatypeVisitorIs called by an AnyType.- Specified by:
visitAnyTypein interfaceIDatatypeVisitor- Parameters:
datatype- the data type.
-
visitMetaType
public void visitMetaType(MetaType datatype)
Description copied from interface:IDatatypeVisitorIs called by a MetaType.- Specified by:
visitMetaTypein interfaceIDatatypeVisitor- Parameters:
datatype- the data type.
-
visitDerivedType
public void visitDerivedType(DerivedDatatype datatype)
Description copied from interface:IDatatypeVisitorIs called by anDerivedDatatypedata type.- Specified by:
visitDerivedTypein interfaceIDatatypeVisitor- Parameters:
datatype- the data type.
-
visitBooleanType
public void visitBooleanType(BooleanType type)
Description copied from interface:IDatatypeVisitorVisiting method for visiting aBooleanType.- Specified by:
visitBooleanTypein interfaceIDatatypeVisitor- Parameters:
type- TheIDatatypewhich should be visited.
-
visitStringType
public void visitStringType(StringType type)
Description copied from interface:IDatatypeVisitorVisiting method for visiting aStringType.- Specified by:
visitStringTypein interfaceIDatatypeVisitor- Parameters:
type- TheIDatatypewhich should be visited.
-
visitConstraintType
public void visitConstraintType(ConstraintType type)
Description copied from interface:IDatatypeVisitorVisiting method for visiting aConstraintType.- Specified by:
visitConstraintTypein interfaceIDatatypeVisitor- Parameters:
type- TheIDatatypewhich should be visited.
-
visitIntegerType
public void visitIntegerType(IntegerType type)
Description copied from interface:IDatatypeVisitorVisiting method for visiting aIntegerType.- Specified by:
visitIntegerTypein interfaceIDatatypeVisitor- Parameters:
type- TheIDatatypewhich should be visited.
-
visitVersionType
public void visitVersionType(VersionType type)
Description copied from interface:IDatatypeVisitorVisiting method for visiting aVersionType.- Specified by:
visitVersionTypein interfaceIDatatypeVisitor- Parameters:
type- TheIDatatypewhich should be visited.
-
visitRealType
public void visitRealType(RealType type)
Description copied from interface:IDatatypeVisitorVisiting method for visiting aRealType.- Specified by:
visitRealTypein interfaceIDatatypeVisitor- Parameters:
type- TheIDatatypewhich should be visited.
-
visitCompoundType
public void visitCompoundType(Compound compound)
Description copied from interface:IDatatypeVisitorVisiting method for visiting aCompound.- Specified by:
visitCompoundTypein interfaceIDatatypeVisitor- Parameters:
compound- TheCompoundwhich should be visited.
-
visitAttributeAssignment
public void visitAttributeAssignment(AttributeAssignment assignment)
Description copied from interface:IModelVisitorVisits an attribute assignment.- Specified by:
visitAttributeAssignmentin interfaceIModelVisitor- Overrides:
visitAttributeAssignmentin classConstraintFinder- Parameters:
assignment- the assignment to visit
-
visitSet
public void visitSet(Set set)
Description copied from interface:ICustomDatatypeVisitorMethod for visiting a set.- Specified by:
visitSetin interfaceICustomDatatypeVisitor- Specified by:
visitSetin interfaceIDatatypeVisitor- Overrides:
visitSetin classConstraintFinder- Parameters:
set- The set which should be visited.
-
visitSequence
public void visitSequence(Sequence sequence)
Description copied from interface:ICustomDatatypeVisitorMethod for visiting a sequence.- Specified by:
visitSequencein interfaceICustomDatatypeVisitor- Specified by:
visitSequencein interfaceIDatatypeVisitor- Overrides:
visitSequencein classConstraintFinder- Parameters:
sequence- The sequence which should be visited.
-
visitEnumType
public void visitEnumType(Enum enumType)
Description copied from interface:IDatatypeVisitorVisiting method for visiting aEnum.- Specified by:
visitEnumTypein interfaceIDatatypeVisitor- Parameters:
enumType- TheEnumwhich should be visited.
-
visitOrderedEnumType
public void visitOrderedEnumType(OrderedEnum enumType)
Description copied from interface:IDatatypeVisitorVisiting method for visiting aOrderredEnum.- Specified by:
visitOrderedEnumTypein interfaceIDatatypeVisitor- Parameters:
enumType- TheEnumwhich should be visited.
-
-