package jetbrains.mps.editor.runtime.impl; /*Generated by MPS */ import java.util.Comparator; import jetbrains.mps.openapi.editor.cells.SubstituteAction; import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; import org.jetbrains.mps.openapi.model.SModel; @Deprecated public class NodeSubstituteActionsComparator implements Comparator<SubstituteAction> { private SNode myContainingRoot; @Deprecated public NodeSubstituteActionsComparator(SNode containingRoot) { myContainingRoot = containingRoot; } @Override public int compare(SubstituteAction action1, SubstituteAction action2) { Object parameter1 = action1.getParameterObject(); Object parameter2 = action2.getParameterObject(); if (parameter1 instanceof SNode) { return (parameter2 instanceof SNode ? compare((SNode) parameter1, (SNode) parameter2) : -1); } else { return (parameter2 instanceof SNode ? 1 : 0); } } private int compare(SNode node1, SNode node2) { if (SNodeOperations.isInstanceOf(node1, MetaAdapterFactory.getConcept(0xc72da2b97cce4447L, 0x8389f407dc1158b7L, 0x1103553c5ffL, "jetbrains.mps.lang.structure.structure.AbstractConceptDeclaration"))) { return (SNodeOperations.isInstanceOf(node2, MetaAdapterFactory.getConcept(0xc72da2b97cce4447L, 0x8389f407dc1158b7L, 0x1103553c5ffL, "jetbrains.mps.lang.structure.structure.AbstractConceptDeclaration")) ? 0 : 1); } else if (SNodeOperations.isInstanceOf(node2, MetaAdapterFactory.getConcept(0xc72da2b97cce4447L, 0x8389f407dc1158b7L, 0x1103553c5ffL, "jetbrains.mps.lang.structure.structure.AbstractConceptDeclaration"))) { return -1; } SModel containigModel = SNodeOperations.getModel(myContainingRoot); if (SNodeOperations.getModel(node1) != containigModel) { return (SNodeOperations.getModel(node2) != containigModel ? 0 : 1); } else if (SNodeOperations.getModel(node2) != containigModel) { return -1; } if (SNodeOperations.getContainingRoot(node1) != myContainingRoot) { return (SNodeOperations.getContainingRoot(node2) != myContainingRoot ? 0 : 1); } else if (SNodeOperations.getContainingRoot(node2) != myContainingRoot) { return -1; } SNode container1 = SNodeOperations.getNodeAncestor(node1, MetaAdapterFactory.getInterfaceConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x11f1e14d895L, "jetbrains.mps.lang.core.structure.IContainer"), true, false); SNode container2 = SNodeOperations.getNodeAncestor(node2, MetaAdapterFactory.getInterfaceConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x11f1e14d895L, "jetbrains.mps.lang.core.structure.IContainer"), true, false); if (container1 == container2) { return 0; } while (container1 != null) { container1 = SNodeOperations.getNodeAncestor(container1, MetaAdapterFactory.getInterfaceConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x11f1e14d895L, "jetbrains.mps.lang.core.structure.IContainer"), false, false); if (container1 == container2) { return -1; } } return 1; } }