Interface IModelVisitor

All Superinterfaces:
ICustomDatatypeVisitor
All Known Implementing Classes:
AbstractDeclarationFinder, AbstractFrozenElementsFinder, AbstractProjectVisitor, AbstractVarModelWriter, AbstractVisitor, AnnotationAssignmentFinder, AssignmentResolver.AssignBlockVisitor, ConfigurableIVMLWriter, ConstraintFinder, ConstraintSplitWriter, DatatypeFinder, DeclarationFinder, DeclarationInContainerFinder, DeclarationMapper, DeletedElementsCollector, EvalBlockFinder, FreezeBlockFinder, FrozenElementsFinder, InitialStructureCollector, IvmlValidationVisitor, IVMLWriter, MandatoryDeclarationClassifier, ModelElementTypeFinder, ModelStatistics.StatisticsVisitor, ModelVisitorAdapter, NamespaceFinder, PrefixSearchVisitor, ProjectCopyVisitor, ProjectInterfaceFinder, ProjectRewriteVisitor, VariableUsage

public interface IModelVisitor extends ICustomDatatypeVisitor
IModelVisitor interface.
Derived visitors can be used for:
  • saving
  • copying
  • testing properties such as (partial) equality
  • translating a model
the whole variability model or parts of it. See AbstractVisitor for a basic implementation of default visiting sequences.
The IVML data model provides further visitors which are specific for the values or the constraint syntax tree. A specific visitor implementation may implement all required interfaces at once or delegate to individual classes implementing the interfaces.
Author:
Lueder, El-Sharkawy, Holger Eichelberger
See Also:
  • Method Details

    • visitProject

      void visitProject(Project project)
      Method for visiting a project.
      Parameters:
      project - The project which should be visited.
    • visitProjectImport

      void visitProjectImport(ProjectImport pImport)
      This method is used for visiting a ProjectImport.
      Parameters:
      pImport - One ProjectImport which should be visited.
    • visitDecisionVariableDeclaration

      void visitDecisionVariableDeclaration(DecisionVariableDeclaration decl)
      This method is used for visiting a decision variable declaration.
      Parameters:
      decl - One declaration which should be visited.
    • visitAttribute

      void visitAttribute(Attribute attribute)
      Method for visiting an attribute.
      Parameters:
      attribute - The attribute which should be visited.
    • visitConstraint

      void visitConstraint(Constraint constraint)
      Method for visiting a constraint.
      Parameters:
      constraint - The constraint which should be visited.
    • visitFreezeBlock

      void visitFreezeBlock(FreezeBlock freeze)
      Method for visiting a freeze block.
      Parameters:
      freeze - The freeze block which should be visited.
    • visitOperationDefinition

      void visitOperationDefinition(OperationDefinition opdef)
      Method for visiting an operation definition.
      Parameters:
      opdef - The operation definition which should be visited.
    • visitPartialEvaluationBlock

      void visitPartialEvaluationBlock(PartialEvaluationBlock block)
      Method for visiting a partial evaluation block.
      Parameters:
      block - The partial evaluation block which should be visited.
    • visitProjectInterface

      void visitProjectInterface(ProjectInterface iface)
      Method for visiting a project interface.
      Parameters:
      iface - The interface which should be visited.
    • visitComment

      void visitComment(Comment comment)
      Method for visiting a comment.
      Parameters:
      comment - the comment to visit
    • visitAttributeAssignment

      void visitAttributeAssignment(AttributeAssignment assignment)
      Visits an attribute assignment.
      Parameters:
      assignment - the assignment to visit
    • visitCompoundAccessStatement

      void visitCompoundAccessStatement(CompoundAccessStatement access)
      Visits a compound access statement (may occur in freeze blocks.
      Parameters:
      access - the access statement