package jetbrains.mps.lang.editor.generator.baseLanguage.template.util;
/*Generated by MPS */
import org.jetbrains.mps.openapi.model.SNode;
import org.jetbrains.mps.openapi.model.SModel;
import org.jetbrains.mps.openapi.language.SAbstractConcept;
import jetbrains.mps.internal.collections.runtime.ListSequence;
import jetbrains.mps.lang.smodel.generator.smodelAdapter.SModelOperations;
import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory;
import jetbrains.mps.internal.collections.runtime.IWhereFilter;
import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations;
import jetbrains.mps.lang.editor.behavior.IMenu_Contribution__BehaviorDescriptor;
import jetbrains.mps.internal.collections.runtime.Sequence;
public class MenuRoots {
private static Iterable<SNode> getMenusAndContributions(SModel inputModel, final SAbstractConcept menuConcept, final SAbstractConcept referenceConcept) {
Iterable<SNode> menus = ListSequence.fromList(SModelOperations.roots(inputModel, MetaAdapterFactory.getInterfaceConcept(0x18bc659203a64e29L, 0xa83a7ff23bde13baL, 0x169efbc9a9048846L, "jetbrains.mps.lang.editor.structure.IMenu"))).where(new IWhereFilter<SNode>() {
public boolean accept(SNode it) {
return SNodeOperations.isInstanceOf(it, SNodeOperations.asSConcept(menuConcept));
}
});
Iterable<SNode> contributions = ListSequence.fromList(SModelOperations.roots(inputModel, MetaAdapterFactory.getInterfaceConcept(0x18bc659203a64e29L, 0xa83a7ff23bde13baL, 0x169efbc9a90a5d62L, "jetbrains.mps.lang.editor.structure.IMenu_Contribution"))).where(new IWhereFilter<SNode>() {
public boolean accept(SNode it) {
return SNodeOperations.isInstanceOf(IMenu_Contribution__BehaviorDescriptor.getMenuReference_id1quYWAD2_PI.invoke(it), SNodeOperations.asSConcept(referenceConcept));
}
});
return Sequence.fromIterable(menus).concat(Sequence.fromIterable(contributions));
}
public static Iterable<SNode> getDefaultMenusAndContributions(SModel inputModel, SAbstractConcept defaultMenuConcept, SAbstractConcept defaultReferenceMenuConcept) {
return getMenusAndContributions(inputModel, defaultMenuConcept, defaultReferenceMenuConcept);
}
public static Iterable<SNode> getNamedMenusAndContributions(SModel inputModel, SAbstractConcept namedMenuConcept, SAbstractConcept namedReferenceMenuConcept) {
return getMenusAndContributions(inputModel, namedMenuConcept, namedReferenceMenuConcept);
}
public static Iterable<SNode> getDefaultTransformationMenusAndContributions(SModel inputModel) {
return getDefaultMenusAndContributions(inputModel, MetaAdapterFactory.getConcept(0x18bc659203a64e29L, 0xa83a7ff23bde13baL, 0x16be955f384efce1L, "jetbrains.mps.lang.editor.structure.TransformationMenu_Default"), MetaAdapterFactory.getConcept(0x18bc659203a64e29L, 0xa83a7ff23bde13baL, 0x5d3b34577b3cff0cL, "jetbrains.mps.lang.editor.structure.TransformationMenuReference_Default"));
}
public static Iterable<SNode> getNamedTransformationMenusAndContributions(SModel inputModel) {
return getNamedMenusAndContributions(inputModel, MetaAdapterFactory.getConcept(0x18bc659203a64e29L, 0xa83a7ff23bde13baL, 0x4e0f93d8a0ac4ee8L, "jetbrains.mps.lang.editor.structure.TransformationMenu_Named"), MetaAdapterFactory.getConcept(0x18bc659203a64e29L, 0xa83a7ff23bde13baL, 0x5d3b34577b3cff09L, "jetbrains.mps.lang.editor.structure.TransformationMenuReference_Named"));
}
public static Iterable<SNode> getDefaultSubstituteMenusAndContributions(SModel inputModel) {
return getDefaultMenusAndContributions(inputModel, MetaAdapterFactory.getConcept(0x18bc659203a64e29L, 0xa83a7ff23bde13baL, 0x2de9c932f4e5ab84L, "jetbrains.mps.lang.editor.structure.SubstituteMenu_Default"), MetaAdapterFactory.getConcept(0x18bc659203a64e29L, 0xa83a7ff23bde13baL, 0x5480a271c0d1df1eL, "jetbrains.mps.lang.editor.structure.SubstituteMenuReference_Default"));
}
public static Iterable<SNode> getNamedSubstituteMenusAndContributions(SModel inputModel) {
return getNamedMenusAndContributions(inputModel, MetaAdapterFactory.getConcept(0x18bc659203a64e29L, 0xa83a7ff23bde13baL, 0x33e0267905fba6fdL, "jetbrains.mps.lang.editor.structure.SubstituteMenu_Named"), MetaAdapterFactory.getConcept(0x18bc659203a64e29L, 0xa83a7ff23bde13baL, 0x5480a271c0d1df1fL, "jetbrains.mps.lang.editor.structure.SubstituteMenuReference_Named"));
}
}