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;
}
}