package jetbrains.mps.core.xml.textGen; /*Generated by MPS */ import jetbrains.mps.text.rt.TextGenAspectBase; import jetbrains.mps.core.xml.structure.LanguageConceptSwitch; import org.jetbrains.annotations.Nullable; import jetbrains.mps.text.rt.TextGenDescriptor; import org.jetbrains.annotations.NotNull; import org.jetbrains.mps.openapi.language.SAbstractConcept; import jetbrains.mps.text.rt.TextGenModelOutline; import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; public class TextGenAspectDescriptor extends TextGenAspectBase { private final LanguageConceptSwitch myIndex = new LanguageConceptSwitch(); public TextGenAspectDescriptor() { } @Nullable @Override public TextGenDescriptor getDescriptor(@NotNull SAbstractConcept concept) { switch (myIndex.index(concept)) { case LanguageConceptSwitch.XmlAttribute: return new XmlAttribute_TextGen(); case LanguageConceptSwitch.XmlCDATA: return new XmlCDATA_TextGen(); case LanguageConceptSwitch.XmlCharRef: return new XmlCharRef_TextGen(); case LanguageConceptSwitch.XmlCharRefValue: return new XmlCharRefValue_TextGen(); case LanguageConceptSwitch.XmlComment: return new XmlComment_TextGen(); case LanguageConceptSwitch.XmlCommentLine: return new XmlCommentLine_TextGen(); case LanguageConceptSwitch.XmlDeclaration: return new XmlDeclaration_TextGen(); case LanguageConceptSwitch.XmlDoctypeDeclaration: return new XmlDoctypeDeclaration_TextGen(); case LanguageConceptSwitch.XmlDocument: return new XmlDocument_TextGen(); case LanguageConceptSwitch.XmlElement: return new XmlElement_TextGen(); case LanguageConceptSwitch.XmlEntityRef: return new XmlEntityRef_TextGen(); case LanguageConceptSwitch.XmlEntityRefValue: return new XmlEntityRefValue_TextGen(); case LanguageConceptSwitch.XmlExternalId: return new XmlExternalId_TextGen(); case LanguageConceptSwitch.XmlFile: return new XmlFile_TextGen(); case LanguageConceptSwitch.XmlNoSpaceValue: return new XmlNoSpaceValue_TextGen(); case LanguageConceptSwitch.XmlProcessingInstruction: return new XmlProcessingInstruction_TextGen(); case LanguageConceptSwitch.XmlProlog: return new XmlProlog_TextGen(); case LanguageConceptSwitch.XmlText: return new XmlText_TextGen(); case LanguageConceptSwitch.XmlTextValue: return new XmlTextValue_TextGen(); case LanguageConceptSwitch.XmlWhitespace: return new XmlWhitespace_TextGen(); } return null; } @Override public void breakdownToUnits(@NotNull TextGenModelOutline outline) { for (SNode root : outline.getModel().getRootNodes()) { if (root.getConcept().equals(MetaAdapterFactory.getConcept(0x479c7a8c02f943b5L, 0x9139d910cb22f298L, 0x5c842a42c54c94c0L, "jetbrains.mps.core.xml.structure.XmlFile"))) { String fname = getFileName_XmlFile(root); String ext = getFileExtension_XmlFile(root); outline.registerTextUnit((ext == null ? fname : (fname + '.' + ext)), root); continue; } } } private static String getFileName_XmlFile(SNode node) { return node.getName(); } private static String getFileExtension_XmlFile(SNode node) { return "xml"; } }