package jetbrains.mps.lang.test.behavior; /*Generated by MPS */ import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; public class NodeRuleReference { private SNode ruleNode; public NodeRuleReference(SNode ruleNode) { this.ruleNode = ruleNode; } public RuleType getType() { if (isTypeSystem()) { return RuleType.TYPESYSTEM; } else if (isConstraints()) { return RuleType.CONSTRAINTS; } else if (isMessageStatement()) { return RuleType.MESSAGESTATEMENT; } else { return RuleType.DEFAULT; } } private boolean isTypeSystem() { return SNodeOperations.isInstanceOf(ruleNode, MetaAdapterFactory.getConcept(0x7a5dda6291404668L, 0xab76d5ed1746f2b2L, 0x1117f3c1ffaL, "jetbrains.mps.lang.typesystem.structure.AbstractEquationStatement")); } private boolean isConstraints() { return SNodeOperations.isInstanceOf(SNodeOperations.getContainingRoot(ruleNode), MetaAdapterFactory.getConcept(0x3f4bc5f5c6c14a28L, 0x8b10c83066ffa4a1L, 0x11a7208faaeL, "jetbrains.mps.lang.constraints.structure.ConceptConstraints")); } private boolean isMessageStatement() { return SNodeOperations.isInstanceOf(ruleNode, MetaAdapterFactory.getInterfaceConcept(0x7a5dda6291404668L, 0xab76d5ed1746f2b2L, 0x11db4aad802L, "jetbrains.mps.lang.typesystem.structure.MessageStatement")); } }