c35752f59775ebaaf87731382202b9113e1e65b6
[sixth.git] / src / main / java / eu / svjatoslav / sixth / core / document / text / Hyperlink.java
1 package eu.svjatoslav.sixth.core.document.text;
2
3 import eu.svjatoslav.commons.string.tokenizer.Terminator;
4 import eu.svjatoslav.commons.string.tokenizer.TokenizerMatch;
5
6 import static eu.svjatoslav.commons.string.tokenizer.Terminator.TerminationStrategy.PRESERVE;
7 import static eu.svjatoslav.sixth.core.document.Helper.TG_HYPERLINK;
8
9 public class Hyperlink implements FormattedTextElement {
10
11     public static final Terminator orgTerminator =
12             new Terminator(PRESERVE, "\\[\\[([\\s\\S]+)\\][ \\t\\r\\n]*\\[([\\s\\S]+)\\]\\]", TG_HYPERLINK);
13
14         public static final Terminator orgTerminator2 =
15             new Terminator(PRESERVE, "\\[\\[([\\s\\S]+)\\]\\]", TG_HYPERLINK);
16
17     private String label;
18     private String URL;
19
20     @Override
21     public String toMD() {
22         return "<URL: " + URL + ", LABEL: " + label + ">";
23     }
24
25     public static Hyperlink fromOrg(TokenizerMatch tokenizerMatch) {
26         Hyperlink hyperlink = new Hyperlink();
27         hyperlink.parseOrg(tokenizerMatch);
28         return hyperlink;
29     }
30
31     private void parseOrg(TokenizerMatch tokenizerMatch) {
32         String[] regExpGroups = tokenizerMatch.getRegExpGroups();
33         URL = regExpGroups[0];
34         if (tokenizerMatch.terminator == orgTerminator){
35             label = regExpGroups[1];
36         }
37
38     }
39
40 }