package jetbrains.mps.ide.migration.check; /*Generated by MPS */ import jetbrains.mps.lang.migration.runtime.base.Problem; import org.jetbrains.mps.openapi.module.SModule; import jetbrains.mps.lang.migration.runtime.base.MigrationScriptReference; import jetbrains.mps.baseLanguage.closures.runtime.Wrappers; import jetbrains.mps.lang.migration.runtime.base.RefactoringScriptReference; import jetbrains.mps.project.AbstractModule; public abstract class MissingMigrationProblem extends Problem<SModule> { public MissingMigrationProblem(SModule migrationProvider) { super(migrationProvider); } public static class MissingMigrationScriptProblem extends MissingMigrationProblem { private MigrationScriptReference myScriptReference; private int myUsedVersion; public MissingMigrationScriptProblem(MigrationScriptReference migration, int usedVersion) { super(migration.getLanguage().getSourceModule()); myScriptReference = migration; } public String getMessage() { final Wrappers._T<String> msg = new Wrappers._T<String>(); getReason().getRepository().getModelAccess().runReadAction(new Runnable() { public void run() { msg.value = "The language " + myScriptReference.getLanguage().getQualifiedName() + " does not provide migration for version " + myScriptReference.getFromVersion() + ". " + "Some modules use this language with version " + myUsedVersion + " while current version is " + myScriptReference.getLanguage().getLanguageVersion() + "."; } }); return msg.value; } } public static class MissingRefactoringLogProblem extends MissingMigrationProblem { private RefactoringScriptReference myScriptReference; private int myUsedVersion; public MissingRefactoringLogProblem(RefactoringScriptReference migration, int usedVersion) { super(migration.getModule()); myScriptReference = migration; } public String getMessage() { final Wrappers._T<String> msg = new Wrappers._T<String>(); getReason().getRepository().getModelAccess().runReadAction(new Runnable() { public void run() { msg.value = "The module " + myScriptReference.getModule().getModuleName() + " does not provide refactoring log for version " + myScriptReference.getFromVersion() + ". " + "Some modules use this module with version " + myUsedVersion + " while current version is " + ((AbstractModule) myScriptReference.getModule()).getModuleVersion() + "."; } }); return msg.value; } } public String getCategory() { return "Missing migrations"; } }