package jetbrains.mps.lang.generator.pluginSolution.plugin; /*Generated by MPS */ import jetbrains.mps.ide.projectPane.CreateNodeExtension; import org.jetbrains.annotations.NotNull; import org.jetbrains.mps.openapi.model.SModel; import jetbrains.mps.smodel.SModelStereotype; import org.jetbrains.mps.openapi.model.SNode; import org.jetbrains.mps.openapi.language.SLanguage; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; import jetbrains.mps.lang.smodel.generator.smodelAdapter.AttributeOperations; import jetbrains.mps.lang.smodel.generator.smodelAdapter.IAttributeDescriptor; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SModelOperations; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations; /*package*/ class AddRootTemplateAnnotation implements CreateNodeExtension { public boolean isApplicable(@NotNull SModel m) { return SModelStereotype.isGeneratorModel(m); } public void setupRoot(@NotNull SNode n) { SLanguage lang = n.getConcept().getLanguage(); if (lang.equals(MetaAdapterFactory.getLanguage(0xb401a68083254110L, 0x8fd384331ff25befL, "jetbrains.mps.lang.generator")) || lang.equals(MetaAdapterFactory.getLanguage(0x289fcc83654341e8L, 0xa5ca768235715ce4L, "jetbrains.mps.lang.generator.generationParameters"))) { return; } SNode node = n; if ((AttributeOperations.getAttribute(node, new IAttributeDescriptor.NodeAttribute(MetaAdapterFactory.getConcept(0xb401a68083254110L, 0x8fd384331ff25befL, 0x11017244494L, "jetbrains.mps.lang.generator.structure.RootTemplateAnnotation"))) == null)) { AttributeOperations.setAttribute(node, new IAttributeDescriptor.NodeAttribute(MetaAdapterFactory.getConcept(0xb401a68083254110L, 0x8fd384331ff25befL, 0x11017244494L, "jetbrains.mps.lang.generator.structure.RootTemplateAnnotation")), SModelOperations.createNewNode(SNodeOperations.getModel(node), null, MetaAdapterFactory.getConcept(0xb401a68083254110L, 0x8fd384331ff25befL, 0x11017244494L, "jetbrains.mps.lang.generator.structure.RootTemplateAnnotation"))); } } }