package jetbrains.mps.idea.java.util; /*Generated by MPS */ import org.jetbrains.mps.openapi.model.SNode; import org.jetbrains.mps.openapi.model.SModelReference; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SPropertyOperations; public class ClassUtil { public static String getClassFQName(SNode claz) { return getClassFQName(claz.getModel().getReference(), claz); } public static String getClassFQName(SModelReference modelReference, SNode claz) { SNode curr = SNodeOperations.cast(((SNode) claz), MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x101d9d3ca30L, "jetbrains.mps.baseLanguage.structure.Classifier")); StringBuilder sb = new StringBuilder(); do { sb.insert(0, SPropertyOperations.getString(curr, MetaAdapterFactory.getProperty(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name"))); sb.insert(0, "."); SNode parent = SNodeOperations.getParent(curr); if (!(SNodeOperations.isInstanceOf(parent, MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x101d9d3ca30L, "jetbrains.mps.baseLanguage.structure.Classifier")))) { break; } curr = SNodeOperations.cast(parent, MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x101d9d3ca30L, "jetbrains.mps.baseLanguage.structure.Classifier")); } while (curr != null); String pkgName = modelReference.getName().getLongName(); sb.insert(0, pkgName); return sb.toString(); } }