package jetbrains.mps.checkers; /*Generated by MPS */ import org.jetbrains.mps.openapi.model.SNode; import org.jetbrains.mps.openapi.model.SModel; import jetbrains.mps.smodel.SModelStereotype; import jetbrains.mps.internal.collections.runtime.ListSequence; import jetbrains.mps.lang.smodel.generator.smodelAdapter.AttributeOperations; import jetbrains.mps.lang.smodel.generator.smodelAdapter.IAttributeDescriptor; import jetbrains.mps.internal.collections.runtime.Sequence; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; import jetbrains.mps.internal.collections.runtime.IWhereFilter; import jetbrains.mps.smodel.behaviour.BHReflection; import jetbrains.mps.core.aspects.behaviour.SMethodTrimmedId; public class ErrorReportUtil { public ErrorReportUtil() { } public static boolean shouldReportError(final SNode node) { SModel model = node.getModel(); if (model == null) { return false; } if (SModelStereotype.isStubModelStereotype(model.getName().getStereotype())) { return false; } SNode current = node; while (current != null) { Iterable<SNode> possibleSuppressors = ListSequence.fromList(AttributeOperations.getAttributeList(current, new IAttributeDescriptor.AllAttributes())).union(Sequence.fromIterable(Sequence.<SNode>singleton(current))); if (Sequence.fromIterable(SNodeOperations.ofConcept(possibleSuppressors, MetaAdapterFactory.getInterfaceConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x2f16f1b357e19f43L, "jetbrains.mps.lang.core.structure.ISuppressErrors"))).any(new IWhereFilter<SNode>() { public boolean accept(SNode attr) { return ((boolean) (Boolean) BHReflection.invoke(attr, SMethodTrimmedId.create("suppress", null, "2WmWrdnSpX7"), node)); } })) { return false; } if (SNodeOperations.isInstanceOf(current, MetaAdapterFactory.getInterfaceConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0xe8924c64a55a26fL, "jetbrains.mps.lang.core.structure.IAntisuppressErrors"))) { return true; } current = SNodeOperations.getParent(current); } return true; } public static boolean manuallySuppressed(SNode node) { return ListSequence.fromList(SNodeOperations.getNodeAncestors(node, MetaAdapterFactory.getInterfaceConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x2f16f1b357e19f42L, "jetbrains.mps.lang.core.structure.ICanSuppressErrors"), true)).any(new IWhereFilter<SNode>() { public boolean accept(SNode it) { return (AttributeOperations.getAttribute(it, new IAttributeDescriptor.NodeAttribute(MetaAdapterFactory.getConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x3a98b0957fe8e5d2L, "jetbrains.mps.lang.core.structure.SuppressErrorsAnnotation"))) != null); } }); } }