package jetbrains.mps.ide.migration.check; /*Generated by MPS */ import org.jetbrains.mps.openapi.language.SLanguage; import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.project.AbstractModule; import java.util.HashSet; import org.jetbrains.mps.openapi.module.SDependency; import jetbrains.mps.internal.collections.runtime.Sequence; import jetbrains.mps.classloading.ClassLoaderManager; public class LanguageNotLoadedProblem extends LanguageMissingProblem { public LanguageNotLoadedProblem(SLanguage language, SNode instance) { super(language, instance); } public String getMessage() { SLanguage lang = getLanguage(); String err = "Language " + lang + " can't be loaded"; AbstractModule langModule = (AbstractModule) lang.getSourceModule(); HashSet<String> invalidDep = new HashSet<String>(); for (SDependency dep : Sequence.fromIterable(langModule.getDeclaredDependencies())) { if (!(ClassLoaderManager.getInstance().isValidForClassloading(dep.getTargetModule()))) { invalidDep.add(dep.getTargetModule().getModuleName()); } } if (!(invalidDep.isEmpty())) { err += String.format(": dependencies %s can't be loaded", invalidDep); } return err; } public String getCategory() { return "Language not loaded (dependency problem)"; } }