Moved Org Mode support to dedicated repository and project.
[sixth.git] / src / main / java / eu / svjatoslav / sixth / core / document / content / ListElement.java
diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/content/ListElement.java b/src/main/java/eu/svjatoslav/sixth/core/document/content/ListElement.java
deleted file mode 100644 (file)
index 5cfc791..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-package eu.svjatoslav.sixth.core.document.content;
-
-import eu.svjatoslav.commons.string.String2;
-import eu.svjatoslav.commons.string.tokenizer.TokenizerMatch;
-import eu.svjatoslav.sixth.core.document.text.FormattedText;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import static eu.svjatoslav.sixth.core.document.Helper.*;
-import static eu.svjatoslav.sixth.core.document.Utils.isBlank;
-import static eu.svjatoslav.sixth.core.document.Utils.removePrefix;
-
-public class ListElement implements Content {
-    StringBuilder nameInOrg = new StringBuilder();
-    public final int indent;
-    public final ListElement parent;
-    private final String type;
-    private final List<Content> content = new ArrayList<>();
-
-    public ListElement(String nameInOrg, int indent, ListElement parent, String type) {
-        this.indent = indent;
-        this.nameInOrg.append(nameInOrg);
-        this.type = type;
-        this.parent = parent;
-    }
-
-    private Content findCurrentContentElement(){
-        if (content.isEmpty()) return null;
-        return content.get(content.size()-1);
-    }
-
-    private boolean isLastContentElement(Class aClass){
-        Content contentElement = findCurrentContentElement();
-        if (contentElement == null) return false;
-
-        return aClass.isInstance(contentElement);
-    }
-
-    public void addContent(Content contentElement){
-        content.add(contentElement);
-    }
-
-    public void parse(TokenizerMatch tm) {
-
-        if (tm.isGroup(TG_DOCUMENT_PROPERTY)) {
-            parseDocumentProperty(tm);
-            return;
-        }
-
-        if (tm.isGroup(TG_DRAWER_PROPERTY)) {
-            // TODO
-            // System.out.println("DOCUMENT PROPERTY!!!: " + tm.token);
-            return;
-        }
-
-        if (tm.isGroup(TG_NORMAL_TEXT)) {
-            if (isBlank(tm.token)){
-                parseSeparator();
-                return;
-            }
-
-            parseTextBlock(tm);
-            return;
-        }
-
-        if (tm.isGroup(TG_MULTILINE_CODE)){
-           // System.out.println(tm.toString());
-            String[] groups = tm.getRegExpGroups();
-            content.add(new MultilineCode(
-                    groups[3], // language
-                    groups[5]  // code
-            ));
-            return;
-        }
-
-        if (tm.isGroup(TG_VERSE)){
-            String[] groups = tm.getRegExpGroups();
-            content.add(new Verse(groups[5]));
-            return;
-        }
-
-        System.out.println("ERROR!!!! Unable to handle: " + tm);
-    }
-
-    private void parseTextBlock(TokenizerMatch tm) {
-        TextBlock textBlock;
-        if (isLastContentElement(TextBlock.class)) {
-            textBlock = ((TextBlock) findCurrentContentElement());
-        } if (content.isEmpty()){
-            // list title continuation
-            nameInOrg.append("\n").append(removePrefix(tm.token, indent + 2));
-            return;
-        } else {
-            textBlock = new TextBlock();
-            content.add(textBlock);
-        }
-
-        textBlock.addContent(tm.token);
-    }
-
-    private void parseDocumentProperty(TokenizerMatch tm) {
-        DocumentPropertyCollection documentPropertyCollection;
-
-        if (isLastContentElement(DocumentPropertyCollection.class)){
-            documentPropertyCollection = (DocumentPropertyCollection)findCurrentContentElement();
-        } else {
-            documentPropertyCollection = new DocumentPropertyCollection();
-            content.add(documentPropertyCollection);
-        }
-
-        documentPropertyCollection.addProperty(
-                tm.getRegExpGroups()[0],
-                tm.getRegExpGroups()[1]);
-    }
-
-    private void parseSeparator() {
-        if (isLastContentElement(Separator.class)){
-            ((Separator)findCurrentContentElement()).addLine();
-        } else {
-            content.add(new Separator()); 
-        }
-    }
-
-
-    public void toMD(StringBuilder sb, int indent) {
-        disablePlantUmlExport();
-
-        if (this.indent >= 0) {
-            String2 s = new String2();
-            s.append(" ", indent).append(type).append(" ").append(getName().toMD(indent + 2)).append("\n");
-            sb.append(s.toString());
-        }
-
-        for (Content c : content) {
-            c.toMD(sb, this.indent + 2);
-        }
-    }
-
-    private FormattedText getName(){
-        return FormattedText.fromOrg(nameInOrg.toString());
-    }
-
-    private void disablePlantUmlExport() {
-
-        for (int i = 0; i< (content.size()-2); i++){
-            if (!(content.get(i) instanceof MultilineCode)) continue;
-
-            MultilineCode code = (MultilineCode) content.get(i);
-            if (!"plantuml".equalsIgnoreCase(code.language)) continue;
-
-            if (!(content.get(i+1) instanceof DocumentPropertyCollection)) continue;
-            DocumentPropertyCollection property = (DocumentPropertyCollection) content.get(i+1);
-
-            if (!property.hasProperty("results")) continue;
-
-            if (!(content.get(i+2) instanceof TextBlock)) continue;
-            TextBlock textBlock = (TextBlock) content.get(i+2);
-
-            textBlock.disableForExport();
-        }
-    }
-}