package jetbrains.mps.ide.modelchecker.platform.actions; /*Generated by MPS */ import org.apache.log4j.Logger; import org.apache.log4j.LogManager; import jetbrains.mps.ide.findusages.model.SearchResults; import org.jetbrains.mps.openapi.module.SModule; import org.jetbrains.mps.openapi.util.ProgressMonitor; import jetbrains.mps.project.validation.ValidationUtil; import org.jetbrains.mps.openapi.util.Processor; import jetbrains.mps.project.validation.ValidationProblem; import org.apache.log4j.Level; public class ModuleChecker { private static final Logger LOG = LogManager.getLogger(ModuleChecker.class); private final SearchResults<ModelCheckerIssue> myResults = new SearchResults<ModelCheckerIssue>(); public ModuleChecker() { } public void checkModule(final SModule module, ProgressMonitor monitor) { String moduleName = module.getModuleName(); monitor.start("Checking " + moduleName + " module properties...", 1); try { ValidationUtil.validateModule(module, new Processor<ValidationProblem>() { public boolean process(ValidationProblem vp) { myResults.getSearchResults().add(ModelCheckerIssue.getSearchResultForModule(module, vp, "module properties")); return true; } }); } catch (Throwable t) { if (LOG.isEnabledFor(Level.ERROR)) { LOG.error("Error while " + moduleName + " module checking", t); } } finally { monitor.done(); } } public SearchResults<ModelCheckerIssue> getSearchResults() { return myResults; } }