5e6884ce9691aff2c6d47308e4779a1e26399142
[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.InvalidSyntaxException;
4 import eu.svjatoslav.commons.string.tokenizer.Terminator;
5 import eu.svjatoslav.commons.string.tokenizer.TokenizerMatch;
6
7 import static eu.svjatoslav.commons.string.tokenizer.Terminator.TerminationStrategy.PRESERVE;
8 import static eu.svjatoslav.sixth.core.document.Helper.TG_HYPERLINK;
9
10 public class Hyperlink implements FormattedTextElement {
11
12     public static final Terminator orgTerminator =
13             new Terminator(PRESERVE, "\\[\\[.*\\]\\]", TG_HYPERLINK);
14
15     private String label;
16     private String URL;
17
18     @Override
19     public String compileMd() {
20         return "<URL: " + URL + ", LABEL: " + label + ">";
21     }
22
23     public static Hyperlink fromOrg(TokenizerMatch tokenizerMatch) throws InvalidSyntaxException {
24         Hyperlink hyperlink = new Hyperlink();
25         hyperlink.parseOrgSyntax(tokenizerMatch);
26         return hyperlink;
27     }
28
29     private void parseOrgSyntax(TokenizerMatch tokenizerMatch) throws InvalidSyntaxException {
30 //        Tokenizer tokenizer = new Tokenizer(tokenizerMatch.reminder);
31 //        Terminator linkSeparator = tokenizer.addTerminator("][", PRESERVE);
32 //
33 //        URL = tokenizer.expectAndConsumeNextTerminatorToken(null).token;
34 //
35 //        if (tokenizer.hasMoreContent()){ // link label is optional
36 //            tokenizer.expectAndConsumeNextTerminatorToken(linkSeparator);
37 //            label = tokenizer.expectAndConsumeNextTerminatorToken(null).token;
38 //        }
39     }
40
41 }