package jetbrains.mps.sampleXML.textGen; /*Generated by MPS */ import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.text.rt.TextGenContext; import jetbrains.mps.text.impl.TextGenSupport; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SLinkOperations; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; import org.jdom.Element; import org.jdom.Document; import org.jdom.output.Format; import org.jdom.output.XMLOutputter; import org.apache.log4j.LogManager; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SPropertyOperations; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations; public abstract class ElementCreator { public static void byElement(SNode node, final TextGenContext ctx) { final TextGenSupport tgs = new TextGenSupport(ctx); SNode element = SLinkOperations.getTarget(node, MetaAdapterFactory.getContainmentLink(0x772f6dcd8c0d48f7L, 0x869c908e036f7c8eL, 0x11d45f8a8b6L, 0x11d45f8a8b8L, "rootElement")); Element result = ElementCreator.createElement(element, ctx); Document document = new Document(); document.setRootElement(result); try { Format prettyFormat = Format.getPrettyFormat(); prettyFormat.setTextMode(Format.TextMode.PRESERVE); XMLOutputter xmlOutputter = new XMLOutputter(prettyFormat); String output = xmlOutputter.outputString(document); tgs.append(output); } catch (Exception e) { LogManager.getLogger(Document.class).error(null, e); } } protected static Element createElement(SNode element, final TextGenContext ctx) { final TextGenSupport tgs = new TextGenSupport(ctx); Element result = new Element(SPropertyOperations.getString(element, MetaAdapterFactory.getProperty(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name"))); for (SNode attribute : SLinkOperations.getChildren(element, MetaAdapterFactory.getContainmentLink(0x772f6dcd8c0d48f7L, 0x869c908e036f7c8eL, 0x11d45f8a8b9L, 0x11d45f8a8baL, "attribute"))) { if (SPropertyOperations.getString(attribute, MetaAdapterFactory.getProperty(0x772f6dcd8c0d48f7L, 0x869c908e036f7c8eL, 0x11d45f8a8a1L, 0x11d45f8a8a3L, "value")) != null) { result.setAttribute(SPropertyOperations.getString(attribute, MetaAdapterFactory.getProperty(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name")), SPropertyOperations.getString(attribute, MetaAdapterFactory.getProperty(0x772f6dcd8c0d48f7L, 0x869c908e036f7c8eL, 0x11d45f8a8a1L, 0x11d45f8a8a3L, "value"))); } } boolean first = true; for (SNode part : SLinkOperations.getChildren(element, MetaAdapterFactory.getContainmentLink(0x772f6dcd8c0d48f7L, 0x869c908e036f7c8eL, 0x11d45f8a8b9L, 0x11d45f8a8bbL, "content"))) { if (SNodeOperations.isInstanceOf(part, MetaAdapterFactory.getConcept(0x772f6dcd8c0d48f7L, 0x869c908e036f7c8eL, 0x11d45f8a8c1L, "jetbrains.mps.sampleXML.structure.Text"))) { if (!(first)) { result.addContent("\n"); } result.addContent(SPropertyOperations.getString(SNodeOperations.cast(part, MetaAdapterFactory.getConcept(0x772f6dcd8c0d48f7L, 0x869c908e036f7c8eL, 0x11d45f8a8c1L, "jetbrains.mps.sampleXML.structure.Text")), MetaAdapterFactory.getProperty(0x772f6dcd8c0d48f7L, 0x869c908e036f7c8eL, 0x11d45f8a8c1L, 0x11d45f8a8c2L, "text"))); } if (SNodeOperations.isInstanceOf(part, MetaAdapterFactory.getConcept(0x772f6dcd8c0d48f7L, 0x869c908e036f7c8eL, 0x11d45f8a8b9L, "jetbrains.mps.sampleXML.structure.Element"))) { result.addContent(ElementCreator.createElement(SNodeOperations.cast(part, MetaAdapterFactory.getConcept(0x772f6dcd8c0d48f7L, 0x869c908e036f7c8eL, 0x11d45f8a8b9L, "jetbrains.mps.sampleXML.structure.Element")), ctx)); } first = false; } return result; } }