Class CheckInitializerVisitor

java.lang.Object
net.ssehub.easy.varModel.model.values.ValueVisitorAdapter
net.ssehub.easy.reasoning.sseReasoner.CheckInitializerVisitor
All Implemented Interfaces:
net.ssehub.easy.varModel.cst.IConstraintTreeVisitor, net.ssehub.easy.varModel.model.values.IValueVisitor

class CheckInitializerVisitor extends net.ssehub.easy.varModel.model.values.ValueVisitorAdapter implements net.ssehub.easy.varModel.cst.IConstraintTreeVisitor
Visits constraints and checks for contained constraints for constraint variables. Call accept(ContainerConstraintsFinder, IModelElement, IDecisionVariable) to use. This visitor is inherently reusable as instance.
Author:
Holger Eichelberger
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    private static class 
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private net.ssehub.easy.varModel.cst.ConstraintSyntaxTree
     
    private net.ssehub.easy.varModel.cst.ConstraintSyntaxTree
     
    private boolean
     
    private net.ssehub.easy.varModel.model.IModelElement
     
    private boolean
     
    private Resolver
     
    private boolean
     
    private net.ssehub.easy.varModel.model.values.Value
     
    private net.ssehub.easy.varModel.confModel.IDecisionVariable
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates the visitor.
  • Method Summary

    Modifier and Type
    Method
    Description
    net.ssehub.easy.varModel.cst.ConstraintSyntaxTree
    accept(net.ssehub.easy.varModel.cst.ConstraintSyntaxTree cst, net.ssehub.easy.varModel.model.IModelElement parent, net.ssehub.easy.varModel.confModel.IDecisionVariable variable)
    Accepts the results of a container constraints finder and derives constraints from the contained constraints / constraint values.
    private void
    checkForConstraint(net.ssehub.easy.varModel.model.datatypes.IDatatype type, net.ssehub.easy.varModel.cst.ConstraintSyntaxTree cst, net.ssehub.easy.varModel.confModel.IDecisionVariable register)
    Checks for a constraint expression.
    private void
    createConstraintFromValue(net.ssehub.easy.varModel.model.values.Value value)
    Creates a constraint from a value.
    void
    visitAnnotationVariable(net.ssehub.easy.varModel.cst.AttributeVariable variable)
     
    void
    visitBlockExpression(net.ssehub.easy.varModel.cst.BlockExpression block)
     
    void
    visitBooleanValue(net.ssehub.easy.varModel.model.values.BooleanValue value)
     
    void
    visitComment(net.ssehub.easy.varModel.cst.Comment comment)
     
    void
    visitCompoundAccess(net.ssehub.easy.varModel.cst.CompoundAccess access)
     
    void
    visitCompoundInitializer(net.ssehub.easy.varModel.cst.CompoundInitializer compoundInit)
     
    void
    visitCompoundValue(net.ssehub.easy.varModel.model.values.CompoundValue value)
     
    void
    visitConstantValue(net.ssehub.easy.varModel.cst.ConstantValue value)
     
    void
    visitConstraintValue(net.ssehub.easy.varModel.model.values.ConstraintValue value)
     
    void
    visitContainerInitializer(net.ssehub.easy.varModel.cst.ContainerInitializer containerInit)
     
    void
    visitContainerOperationCall(net.ssehub.easy.varModel.cst.ContainerOperationCall call)
     
    void
    visitContainerValue(net.ssehub.easy.varModel.model.values.ContainerValue value)
     
    void
    visitDeferInitExpression(net.ssehub.easy.varModel.cst.DeferInitExpression expression)
     
    void
    visitIfThen(net.ssehub.easy.varModel.cst.IfThen ifThen)
     
    void
    visitLet(net.ssehub.easy.varModel.cst.Let let)
     
    void
    visitMultiAndExpression(net.ssehub.easy.varModel.cst.MultiAndExpression expression)
     
    void
    visitOclFeatureCall(net.ssehub.easy.varModel.cst.OCLFeatureCall call)
     
    void
    visitParenthesis(net.ssehub.easy.varModel.cst.Parenthesis parenthesis)
     
    void
    visitSelf(net.ssehub.easy.varModel.cst.Self self)
     
    void
    visitUnresolvedExpression(net.ssehub.easy.varModel.cst.UnresolvedExpression expression)
     
    void
    visitVariable(net.ssehub.easy.varModel.cst.Variable variable)
     

    Methods inherited from class net.ssehub.easy.varModel.model.values.ValueVisitorAdapter

    visitEnumValue, visitIntValue, visitMetaTypeValue, visitNullValue, visitRealValue, visitReferenceValue, visitStringValue, visitVersionValue

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • resolver

      private Resolver resolver
    • isCompoundInitializer

      private boolean isCompoundInitializer
    • expression

      private net.ssehub.easy.varModel.cst.ConstraintSyntaxTree expression
    • value

      private net.ssehub.easy.varModel.model.values.Value value
    • process

      private boolean process
    • variable

      private net.ssehub.easy.varModel.confModel.IDecisionVariable variable
    • parent

      private net.ssehub.easy.varModel.model.IModelElement parent
    • substituteVars

      private boolean substituteVars
    • cst

      private net.ssehub.easy.varModel.cst.ConstraintSyntaxTree cst
  • Constructor Details

    • CheckInitializerVisitor

      public CheckInitializerVisitor(Resolver resolver)
      Creates the visitor.
      Parameters:
      resolver - the resolver instance to use for transforming and adding constraints
  • Method Details

    • accept

      public net.ssehub.easy.varModel.cst.ConstraintSyntaxTree accept(net.ssehub.easy.varModel.cst.ConstraintSyntaxTree cst, net.ssehub.easy.varModel.model.IModelElement parent, net.ssehub.easy.varModel.confModel.IDecisionVariable variable)
      Accepts the results of a container constraints finder and derives constraints from the contained constraints / constraint values.
      Parameters:
      cst - the constraint to accept / visit
      parent - parent for temporary constraints
      variable - the actually (nested) variable, used to relate the created constraint to, may be null
      Returns:
      cst or a modified version of it
    • visitCompoundValue

      public void visitCompoundValue(net.ssehub.easy.varModel.model.values.CompoundValue value)
      Specified by:
      visitCompoundValue in interface net.ssehub.easy.varModel.model.values.IValueVisitor
      Overrides:
      visitCompoundValue in class net.ssehub.easy.varModel.model.values.ValueVisitorAdapter
    • visitContainerValue

      public void visitContainerValue(net.ssehub.easy.varModel.model.values.ContainerValue value)
      Specified by:
      visitContainerValue in interface net.ssehub.easy.varModel.model.values.IValueVisitor
      Overrides:
      visitContainerValue in class net.ssehub.easy.varModel.model.values.ValueVisitorAdapter
    • visitConstraintValue

      public void visitConstraintValue(net.ssehub.easy.varModel.model.values.ConstraintValue value)
      Specified by:
      visitConstraintValue in interface net.ssehub.easy.varModel.model.values.IValueVisitor
      Overrides:
      visitConstraintValue in class net.ssehub.easy.varModel.model.values.ValueVisitorAdapter
    • visitBooleanValue

      public void visitBooleanValue(net.ssehub.easy.varModel.model.values.BooleanValue value)
      Specified by:
      visitBooleanValue in interface net.ssehub.easy.varModel.model.values.IValueVisitor
      Overrides:
      visitBooleanValue in class net.ssehub.easy.varModel.model.values.ValueVisitorAdapter
    • createConstraintFromValue

      private void createConstraintFromValue(net.ssehub.easy.varModel.model.values.Value value)
      Creates a constraint from a value.
      Parameters:
      value - the value
    • visitCompoundInitializer

      public void visitCompoundInitializer(net.ssehub.easy.varModel.cst.CompoundInitializer compoundInit)
      Specified by:
      visitCompoundInitializer in interface net.ssehub.easy.varModel.cst.IConstraintTreeVisitor
    • visitContainerInitializer

      public void visitContainerInitializer(net.ssehub.easy.varModel.cst.ContainerInitializer containerInit)
      Specified by:
      visitContainerInitializer in interface net.ssehub.easy.varModel.cst.IConstraintTreeVisitor
    • checkForConstraint

      private void checkForConstraint(net.ssehub.easy.varModel.model.datatypes.IDatatype type, net.ssehub.easy.varModel.cst.ConstraintSyntaxTree cst, net.ssehub.easy.varModel.confModel.IDecisionVariable register)
      Checks for a constraint expression. Considers substituteVars.
      Parameters:
      type - the actual data type
      cst - the constraint expression
      register - the variable to register new constraints for, may be null
    • visitConstantValue

      public void visitConstantValue(net.ssehub.easy.varModel.cst.ConstantValue value)
      Specified by:
      visitConstantValue in interface net.ssehub.easy.varModel.cst.IConstraintTreeVisitor
    • visitVariable

      public void visitVariable(net.ssehub.easy.varModel.cst.Variable variable)
      Specified by:
      visitVariable in interface net.ssehub.easy.varModel.cst.IConstraintTreeVisitor
    • visitAnnotationVariable

      public void visitAnnotationVariable(net.ssehub.easy.varModel.cst.AttributeVariable variable)
      Specified by:
      visitAnnotationVariable in interface net.ssehub.easy.varModel.cst.IConstraintTreeVisitor
    • visitParenthesis

      public void visitParenthesis(net.ssehub.easy.varModel.cst.Parenthesis parenthesis)
      Specified by:
      visitParenthesis in interface net.ssehub.easy.varModel.cst.IConstraintTreeVisitor
    • visitComment

      public void visitComment(net.ssehub.easy.varModel.cst.Comment comment)
      Specified by:
      visitComment in interface net.ssehub.easy.varModel.cst.IConstraintTreeVisitor
    • visitOclFeatureCall

      public void visitOclFeatureCall(net.ssehub.easy.varModel.cst.OCLFeatureCall call)
      Specified by:
      visitOclFeatureCall in interface net.ssehub.easy.varModel.cst.IConstraintTreeVisitor
    • visitLet

      public void visitLet(net.ssehub.easy.varModel.cst.Let let)
      Specified by:
      visitLet in interface net.ssehub.easy.varModel.cst.IConstraintTreeVisitor
    • visitIfThen

      public void visitIfThen(net.ssehub.easy.varModel.cst.IfThen ifThen)
      Specified by:
      visitIfThen in interface net.ssehub.easy.varModel.cst.IConstraintTreeVisitor
    • visitContainerOperationCall

      public void visitContainerOperationCall(net.ssehub.easy.varModel.cst.ContainerOperationCall call)
      Specified by:
      visitContainerOperationCall in interface net.ssehub.easy.varModel.cst.IConstraintTreeVisitor
    • visitCompoundAccess

      public void visitCompoundAccess(net.ssehub.easy.varModel.cst.CompoundAccess access)
      Specified by:
      visitCompoundAccess in interface net.ssehub.easy.varModel.cst.IConstraintTreeVisitor
    • visitUnresolvedExpression

      public void visitUnresolvedExpression(net.ssehub.easy.varModel.cst.UnresolvedExpression expression)
      Specified by:
      visitUnresolvedExpression in interface net.ssehub.easy.varModel.cst.IConstraintTreeVisitor
    • visitSelf

      public void visitSelf(net.ssehub.easy.varModel.cst.Self self)
      Specified by:
      visitSelf in interface net.ssehub.easy.varModel.cst.IConstraintTreeVisitor
    • visitBlockExpression

      public void visitBlockExpression(net.ssehub.easy.varModel.cst.BlockExpression block)
      Specified by:
      visitBlockExpression in interface net.ssehub.easy.varModel.cst.IConstraintTreeVisitor
    • visitDeferInitExpression

      public void visitDeferInitExpression(net.ssehub.easy.varModel.cst.DeferInitExpression expression)
      Specified by:
      visitDeferInitExpression in interface net.ssehub.easy.varModel.cst.IConstraintTreeVisitor
    • visitMultiAndExpression

      public void visitMultiAndExpression(net.ssehub.easy.varModel.cst.MultiAndExpression expression)
      Specified by:
      visitMultiAndExpression in interface net.ssehub.easy.varModel.cst.IConstraintTreeVisitor