package jetbrains.mps.baseLanguage.scopes; /*Generated by MPS */ import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.util.NameUtil; import jetbrains.mps.internal.collections.runtime.SetSequence; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SLinkOperations; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; public class BaseLanguageUtil { public BaseLanguageUtil() { } public static boolean isAssignable(SNode fromClassifier, SNode toClassifier) { if (fromClassifier == null) { return false; } if (fromClassifier == toClassifier) { return true; } if ("java.lang.Object".equals(NameUtil.nodeFQName(toClassifier))) { return true; } return SetSequence.fromSet(ClassifierScopeUtils.getExtendedClassifiers(fromClassifier)).contains(toClassifier); } public static SNode getSuperclass(SNode subClass) { return SNodeOperations.cast(check_b9g70l_a0a0c(SLinkOperations.getTarget(subClass, MetaAdapterFactory.getContainmentLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c108ca66L, 0x10f6353296dL, "superclass"))), MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c108ca66L, "jetbrains.mps.baseLanguage.structure.ClassConcept")); } private static SNode check_b9g70l_a0a0c(SNode checkedDotOperand) { if (null != checkedDotOperand) { return SLinkOperations.getTarget(checkedDotOperand, MetaAdapterFactory.getReferenceLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x101de48bf9eL, 0x101de490babL, "classifier")); } return null; } }