package jetbrains.mps.build.mps.typesystem;
/*Generated by MPS */
import jetbrains.mps.errors.QuickFix_Runtime;
import org.apache.log4j.Logger;
import org.apache.log4j.LogManager;
import jetbrains.mps.smodel.SNodePointer;
import org.jetbrains.mps.openapi.model.SNode;
import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations;
import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory;
import jetbrains.mps.build.mps.util.PathConverter;
import jetbrains.mps.build.mps.util.VisibleModules;
import jetbrains.mps.build.mps.util.ModuleLoader;
import jetbrains.mps.build.mps.util.ModuleChecker;
import jetbrains.mps.build.mps.util.ModuleLoaderException;
import org.apache.log4j.Level;
public class ReloadRequired_QuickFix extends QuickFix_Runtime {
private static final Logger LOG = LogManager.getLogger(ReloadRequired_QuickFix.class);
public ReloadRequired_QuickFix() {
super(new SNodePointer("r:473be7a1-ec10-4475-89b9-397d2558ecb0(jetbrains.mps.build.mps.typesystem)", "2531699772406320928"));
}
public String getDescription(SNode node) {
return "Load required information from file";
}
public void execute(SNode node) {
SNode module = SNodeOperations.as(node, MetaAdapterFactory.getConcept(0xcf935df46994e9cL, 0xa132fa109541cba3L, 0x4780308f5d333ebL, "jetbrains.mps.build.mps.structure.BuildMps_AbstractModule"));
if (module == null) {
return;
}
SNode project = SNodeOperations.as(SNodeOperations.getContainingRoot(node), MetaAdapterFactory.getConcept(0x798100da4f0a421aL, 0xb99171f8c50ce5d2L, 0x4df58c6f18f84a13L, "jetbrains.mps.build.structure.BuildProject"));
if ((project == null)) {
return;
}
if (SNodeOperations.isInstanceOf(module, MetaAdapterFactory.getConcept(0xcf935df46994e9cL, 0xa132fa109541cba3L, 0x4c6db07d2e56a8b4L, "jetbrains.mps.build.mps.structure.BuildMps_Generator"))) {
return;
}
PathConverter pathConverter = new PathConverter(project);
try {
VisibleModules visible = new VisibleModules(project);
visible.collect();
ModuleLoader.createModuleChecker(module, visible, pathConverter).check(ModuleChecker.CheckType.LOAD_IMPORTANT_PART);
} catch (ModuleLoaderException ex) {
if (LOG.isEnabledFor(Level.ERROR)) {
LOG.error(ex.getMessage());
}
if (LOG.isDebugEnabled()) {
LOG.debug(ex.getMessage(), ex);
}
// TODO report?
}
}
}