package jetbrains.mps.ide.modelchecker.platform.actions; /*Generated by MPS */ import java.util.List; import org.jetbrains.mps.openapi.model.SModel; import org.jetbrains.mps.openapi.module.SModule; import jetbrains.mps.internal.collections.runtime.ListSequence; import java.util.ArrayList; import jetbrains.mps.internal.collections.runtime.Sequence; import jetbrains.mps.smodel.SModelStereotype; import jetbrains.mps.smodel.Language; import jetbrains.mps.smodel.Generator; import jetbrains.mps.internal.collections.runtime.CollectionSequence; import org.jetbrains.annotations.NotNull; import jetbrains.mps.ide.findusages.model.SearchResults; import org.jetbrains.annotations.Nullable; import jetbrains.mps.ide.findusages.model.SearchResult; public final class ModelCheckerUtils { private ModelCheckerUtils() { } public static List<SModel> getModelDescriptors(SModule module) { List<SModel> modelDescrpitors = ListSequence.fromList(new ArrayList<SModel>()); for (SModel modelDescriptor : Sequence.fromIterable(module.getModels())) { if (SModelStereotype.isUserModel(modelDescriptor)) { ListSequence.fromList(modelDescrpitors).addElement(modelDescriptor); } if (ModelCheckerSettings.getInstance().isCheckStubs() && SModelStereotype.isStubModelStereotype(SModelStereotype.getStereotype(modelDescriptor))) { ListSequence.fromList(modelDescrpitors).addElement(modelDescriptor); } } if (module instanceof Language) { Language language = (Language) module; for (Generator generator : CollectionSequence.fromCollection(language.getGenerators())) { ListSequence.fromList(modelDescrpitors).addSequence(ListSequence.fromList(getModelDescriptors(generator))); } } return modelDescrpitors; } public static int getIssueCountForSeverity(@NotNull SearchResults<ModelCheckerIssue> issues, @Nullable String severity) { if (severity == null) { return 0; } int issueCount = 0; for (SearchResult<ModelCheckerIssue> issue : ListSequence.fromList(issues.getSearchResults())) { if (severity.equals(issue.getCategories().get(0).o2)) { issueCount++; } } return issueCount; } }