]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/markdown/nodes/ExtensionBlockNode.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / markdown / nodes / ExtensionBlockNode.java
1 package org.simantics.scl.compiler.markdown.nodes;\r
2 \r
3 import org.simantics.scl.compiler.markdown.internal.ExtensionNodeHandler;\r
4 \r
5 public class ExtensionBlockNode extends Node {\r
6     String extension;\r
7     String content;\r
8     \r
9     public ExtensionBlockNode(String extension, String content) {\r
10         this.extension = extension;\r
11         this.content = content;\r
12     }\r
13     \r
14     @Override\r
15     public void processExtensionNodes(ExtensionNodeHandler handler) {\r
16         DocumentNode replacingNodes = handler.expandBlock(extension, content);\r
17         if(replacingNodes != null) {\r
18             if(replacingNodes.firstChild == null)\r
19                 remove();\r
20             else {\r
21                 for(Node child = replacingNodes.firstChild; child != null; child = child.next)\r
22                     child.parent = parent;\r
23                 if(prev == null)\r
24                     parent.firstChild = replacingNodes.firstChild;\r
25                 else {\r
26                     replacingNodes.firstChild.prev = prev;\r
27                     prev.next = replacingNodes.firstChild;\r
28                 }\r
29                 if(next == null)\r
30                     parent.lastChild = replacingNodes.lastChild;\r
31                 else {\r
32                     replacingNodes.lastChild.next = next;\r
33                     next.prev = replacingNodes.lastChild;\r
34                 }\r
35             }\r
36         }\r
37     }\r
38     \r
39     @Override\r
40     public void toHtml(StringBuilder b) {\r
41         b.append("::").append(extension).append('[').append(content).append(']');\r
42     }\r
43 }\r