package jetbrains.mps.lang.structure.constraints; /*Generated by MPS */ import jetbrains.mps.scope.Scope; import org.jetbrains.mps.openapi.model.SModel; import org.jetbrains.mps.openapi.language.SAbstractConcept; import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.scope.EmptyScope; import jetbrains.mps.scope.FilteringScope; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; import jetbrains.mps.internal.collections.runtime.Sequence; import jetbrains.mps.lang.structure.behavior.AbstractConceptDeclaration__BehaviorDescriptor; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations; public class Scopes { public static Scope forConceptsInSameLanguage(SModel model, SAbstractConcept metaConcept) { return new FullyQualifiedNamedElementsScope(Concepts.getConceptsInSameLanguage(model, metaConcept)); } public static Scope forConcepts(SNode contextNode, SAbstractConcept metaConcept) { return new FullyQualifiedNamedElementsScope(Concepts.getAvailableConcepts(contextNode, metaConcept)); } public static Scope forLanguageConcepts(SNode contextNode, SAbstractConcept metaConcept) { return new FullyQualifiedNamedElementsScope(Concepts.getAvailableLanguageConcepts(contextNode, metaConcept)); } public static Scope forConceptDeclarationExtends(final SNode conceptNode, SNode contextNode) { if (conceptNode == null) { return new EmptyScope(); } return new FilteringScope(forConcepts(contextNode, MetaAdapterFactory.getConcept(0xc72da2b97cce4447L, 0x8389f407dc1158b7L, 0xf979ba0450L, "jetbrains.mps.lang.structure.structure.ConceptDeclaration"))) { @Override public boolean isExcluded(SNode node) { return node == conceptNode || Sequence.fromIterable(AbstractConceptDeclaration__BehaviorDescriptor.getAllSuperConcepts_id2A8AB0rAWpG.invoke(SNodeOperations.cast(node, MetaAdapterFactory.getConcept(0xc72da2b97cce4447L, 0x8389f407dc1158b7L, 0xf979ba0450L, "jetbrains.mps.lang.structure.structure.ConceptDeclaration")), ((boolean) true))).contains(conceptNode); } }; } }