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