23852845cf06134c1fe57ef58826982c62368e1e
[sixth.git] / src / main / java / eu / svjatoslav / sixth / core / document / Document.java
1 package eu.svjatoslav.sixth.core.document;
2
3 import eu.svjatoslav.sixth.core.document.text.FormattedText;
4
5 import static eu.svjatoslav.sixth.core.document.text.FormattedText.fromOrg;
6
7 public class Document {
8     public final Heading rootHeading = new Heading( fromOrg("<root>") , 0, null);
9
10     private Heading currentHeading = rootHeading;
11
12     public Heading createHeading(FormattedText name, int targetLevel){
13         if (currentHeading.level == (targetLevel - 1)){
14             Heading newHeading = new Heading(name, targetLevel, currentHeading);
15             currentHeading.addChild(newHeading);
16             currentHeading = newHeading;
17             return newHeading;
18         }
19
20         if (currentHeading.level > (targetLevel - 1)){
21             currentHeading = currentHeading.parent;
22             return createHeading(name, targetLevel);
23         }
24
25         Heading missingIntermediate = new Heading(fromOrg("<noname>"), currentHeading.level + 1, currentHeading);
26         currentHeading.addChild(missingIntermediate);
27         currentHeading = missingIntermediate;
28         return createHeading(name, targetLevel);
29     }
30 }