package jetbrains.mps.lang.test.behavior; /*Generated by MPS */ import jetbrains.mps.errors.IErrorReporter; import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.errors.MessageStatus; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SConceptOperations; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; public class NodeRuleFactory { private IErrorReporter reporter; public NodeRuleFactory(IErrorReporter reporter) { this.reporter = reporter; } public SNode createNodeFromRuleMsg(SNode reference) { NodeRuleReference ruleReference = new NodeRuleReference(reference); if (ruleReference.getType() == RuleType.TYPESYSTEM) { return this.createTypeSystemCheckOperation(); } else if (ruleReference.getType() == RuleType.CONSTRAINTS) { return this.createConstraintsCheckOperation(reference); } else if (ruleReference.getType() == RuleType.MESSAGESTATEMENT) { return this.createMessageStatementCheckOperation(reference); } else { return this.createDefaultCheckOperation(reference); } } private SNode createTypeSystemCheckOperation() { if (reporter.getMessageStatus() == MessageStatus.ERROR) { return SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8585453e6bfb4d80L, 0x98deb16074f1d86cL, 0x5f2a921acc5d63aL, "jetbrains.mps.lang.test.structure.NodeTypeSystemErrorCheckOperation")); } else { return SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8585453e6bfb4d80L, 0x98deb16074f1d86cL, 0x770c2c9f6f1bbfcaL, "jetbrains.mps.lang.test.structure.NodeTypeSystemWarningCheckOperation")); } } private SNode createConstraintsCheckOperation(SNode reference) { SNode result; if (reporter.getMessageStatus() == MessageStatus.ERROR) { result = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8585453e6bfb4d80L, 0x98deb16074f1d86cL, 0x73a7cdcfba5276dfL, "jetbrains.mps.lang.test.structure.NodeConstraintsErrorCheckOperation")); } else { result = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8585453e6bfb4d80L, 0x98deb16074f1d86cL, 0x11b0224b421L, "jetbrains.mps.lang.test.structure.NodeWarningCheckOperation")); } return result; } private SNode createMessageStatementCheckOperation(SNode reference) { SNode result; if (reporter.getMessageStatus() == MessageStatus.ERROR) { result = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8585453e6bfb4d80L, 0x98deb16074f1d86cL, 0x11b01e7283dL, "jetbrains.mps.lang.test.structure.NodeErrorCheckOperation")); } else { result = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8585453e6bfb4d80L, 0x98deb16074f1d86cL, 0x11b0224b421L, "jetbrains.mps.lang.test.structure.NodeWarningCheckOperation")); } return result; } private SNode createDefaultCheckOperation(SNode reference) { SNode result; if (reporter.getMessageStatus() == MessageStatus.ERROR) { result = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8585453e6bfb4d80L, 0x98deb16074f1d86cL, 0x6cbc57bb7a1917bdL, "jetbrains.mps.lang.test.structure.NodeUnknownErrorCheckOperation")); } else { result = SConceptOperations.createNewNode(MetaAdapterFactory.getConcept(0x8585453e6bfb4d80L, 0x98deb16074f1d86cL, 0x11b0224b421L, "jetbrains.mps.lang.test.structure.NodeWarningCheckOperation")); } return result; } }