X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=sixth.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fcore%2Fdocument%2FDocument.java;fp=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fcore%2Fdocument%2FDocument.java;h=362265cae8fa50986145eacbe73c76352c1c924e;hp=2c3d2f61dd5ce84eb614935a8c2d0718f6e25a1d;hb=4d6637215622edcf65ed246e0a63c9e7191e3fc3;hpb=7f9e6d11eb956ba3e1df724a21313c6a6bd1eb49 diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/Document.java b/src/main/java/eu/svjatoslav/sixth/core/document/Document.java index 2c3d2f6..362265c 100644 --- a/src/main/java/eu/svjatoslav/sixth/core/document/Document.java +++ b/src/main/java/eu/svjatoslav/sixth/core/document/Document.java @@ -1,4 +1,24 @@ package eu.svjatoslav.sixth.core.document; public class Document { + public final Heading rootHeading = new Heading("", 0, null); + + private Heading currentHeading = rootHeading; + + public Heading createHeading(String name, int targetLevel){ + if (currentHeading.level == (targetLevel - 1)){ + Heading newHeading = new Heading(name, targetLevel, currentHeading); + currentHeading = newHeading; + return newHeading; + } + + if (currentHeading.level > (targetLevel - 1)){ + currentHeading = currentHeading.parent; + return createHeading(name, targetLevel); + } + + Heading missingIntermediate = new Heading("", currentHeading.level + 1, currentHeading); + currentHeading = missingIntermediate; + return createHeading(name, targetLevel); + } }