Class ProjectRewriteVisitor

java.lang.Object
net.ssehub.easy.varModel.model.rewrite.ProjectRewriteVisitor
All Implemented Interfaces:
ICustomDatatypeVisitor, IModelVisitor

public class ProjectRewriteVisitor extends Object implements IModelVisitor
Visitor for modifying a (copied) project. This can be used to filter a project for specific demands, e.g., a Project without constraints containing frozen variables.
This visitor modifies the given project. For this reason, it is recommended to use the ProjectCopyVisitor before to create a copy first.

Usage
  1. Create visitor for the desired Project and specify whether imported projects shall also be rewritten (cf. FilterType)
  2. Add desired IModelElementFilter and ProjectImport filters
  3. Call Project.accept(net.ssehub.easy.varModel.model.IModelVisitor)
  4. project will be affected through this visitation and should not be saved.
For instance:

 Project project = ...
 Configuration config = new Configuration(project); // Needed for some filter
 ProjectRewriteVisitor rewriter = new ProjectRewriteVisitor(project, FilterType.ALL);
 rewriter.addModelCopyModifier(new ModelElementFilter(Comment.class));
 rewriter.addModelCopyModifier(new FrozenConstraintsFilter(config));
 rewriter.addModelCopyModifier(new FrozenTypeDefResolver(config));
 rewriter.addModelCopyModifier(new FrozenConstraintVarFilter(config));
 rewriter.addModelCopyModifier(new FrozenCompoundConstraintsOmitter(config));
 project.accept(rewriter);
 
Author:
El-Sharkawy