public abstract class AbstractMarkupDocBuilder extends java.lang.Object implements MarkupDocBuilder
| Modifier and Type | Field and Description |
|---|---|
protected static java.util.regex.Pattern |
ANCHOR_IGNORABLE_PATTERN |
protected static java.lang.String |
ANCHOR_SEPARATION_CHARACTERS |
protected static java.util.regex.Pattern |
ANCHOR_UNIGNORABLE_PATTERN |
protected java.lang.String |
anchorPrefix |
protected java.lang.StringBuilder |
documentBuilder |
protected static boolean |
LINE_BREAK_DEFAULT
Explicit line break default behavior for line returns, when not specified.
|
protected org.slf4j.Logger |
logger |
protected static int |
MAX_TITLE_LEVEL |
protected static java.lang.String |
NEW_LINES |
protected java.lang.String |
newLine |
protected static java.lang.String |
WHITESPACE |
| Constructor and Description |
|---|
AbstractMarkupDocBuilder() |
AbstractMarkupDocBuilder(java.lang.String newLine) |
| Modifier and Type | Method and Description |
|---|---|
java.nio.file.Path |
addFileExtension(java.nio.file.Path file)
Add an extension to file depending on markup language.
|
MarkupDocBuilder |
anchor(java.lang.String anchor)
Builds a custom
anchor for later reference. |
MarkupDocBuilder |
block(java.lang.String text,
MarkupBlockStyle style)
Builds a block of
text with specified style. |
protected void |
boldText(Markup markup,
java.lang.String text) |
MarkupDocBuilder |
boldTextLine(java.lang.String text)
Builds a bold text line.
|
MarkupDocBuilder |
boldTextLine(java.lang.String text,
boolean forceLineBreak)
Builds a bold text line.
|
protected java.lang.String |
convert(java.lang.String markupText,
MarkupLanguage markupLanguage) |
MarkupDocBuilder |
crossReference(java.lang.String anchor)
Builds an cross-reference to local document
anchor. |
MarkupDocBuilder |
crossReference(java.lang.String anchor,
java.lang.String text)
Builds an cross-reference to local document
anchor with specified text. |
MarkupDocBuilder |
crossReferenceRaw(java.lang.String anchor)
Builds an cross-reference to local document
anchor. |
MarkupDocBuilder |
crossReferenceRaw(java.lang.String anchor,
java.lang.String text)
Builds an cross-reference to local document
anchor with specified text. |
protected void |
delimitedBlockText(Markup markup,
java.lang.String text) |
protected void |
delimitedBlockText(Markup begin,
java.lang.String text,
Markup end) |
protected void |
delimitedTextWithoutLineBreaks(Markup markup,
java.lang.String text) |
protected void |
delimitedTextWithoutLineBreaks(Markup begin,
java.lang.String text,
Markup end) |
protected void |
documentTitle(Markup markup,
java.lang.String title) |
java.lang.String |
getAnchorPrefix() |
protected abstract MarkupLanguage |
getMarkupLanguage() |
MarkupDocBuilder |
importMarkup(java.io.Reader markupText,
MarkupLanguage markupLanguage)
Import some markup text into this builder.
|
protected void |
importMarkupStyle1(java.util.regex.Pattern titlePattern,
Markup titlePrefix,
java.io.Reader markupText,
MarkupLanguage markupLanguage,
int levelOffset) |
protected void |
importMarkupStyle2(java.util.regex.Pattern titlePattern,
java.lang.String titleFormat,
boolean startFrom0,
java.io.Reader markupText,
MarkupLanguage markupLanguage,
int levelOffset) |
protected void |
italicText(Markup markup,
java.lang.String text) |
MarkupDocBuilder |
italicTextLine(java.lang.String text)
Builds an italic text line.
|
MarkupDocBuilder |
italicTextLine(java.lang.String text,
boolean forceLineBreak)
Builds an italic text line.
|
MarkupDocBuilder |
listingBlock(java.lang.String text)
Builds a listing text block.
|
protected void |
literalText(Markup markup,
java.lang.String text) |
MarkupDocBuilder |
literalTextLine(java.lang.String text)
Builds a literal text line.
|
MarkupDocBuilder |
literalTextLine(java.lang.String text,
boolean forceLineBreak)
Builds a literal text line.
|
MarkupDocBuilder |
newLine()
Builds a newline using
System.getProperty("line.separator"). |
protected void |
newLine(Markup markup,
boolean forceLineBreak) |
protected java.lang.String |
normalizeAnchor(Markup spaceEscape,
java.lang.String anchor) |
MarkupDocBuilder |
paragraph(java.lang.String text)
Builds a text paragraph.
|
java.lang.String |
replaceNewLines(java.lang.String content) |
java.lang.String |
replaceNewLines(java.lang.String content,
java.lang.String replacement) |
java.lang.String |
replaceNewLinesWithWhiteSpace(java.lang.String content) |
protected void |
sectionTitleLevel(Markup markup,
int level,
java.lang.String title) |
MarkupDocBuilder |
sectionTitleLevel1(java.lang.String title)
Builds a level 1 section
title. |
MarkupDocBuilder |
sectionTitleLevel2(java.lang.String title)
Builds a level 2 section
title. |
MarkupDocBuilder |
sectionTitleLevel3(java.lang.String title)
Builds a level 3 section
title. |
MarkupDocBuilder |
sectionTitleLevel4(java.lang.String title)
Builds a level 4 section
title. |
MarkupDocBuilder |
sectionTitleLevel5(java.lang.String title)
Builds a level 5 section
title. |
MarkupDocBuilder |
sectionTitleWithAnchorLevel(int level,
java.lang.String title)
Builds a section
title with an auto-generated anchor from the normalized title, for later reference. |
protected void |
sectionTitleWithAnchorLevel(Markup markup,
int level,
java.lang.String title,
java.lang.String anchor) |
MarkupDocBuilder |
sectionTitleWithAnchorLevel1(java.lang.String title)
Builds a level 1 section
title with an auto-generated anchor from the normalized title, for later reference. |
MarkupDocBuilder |
sectionTitleWithAnchorLevel1(java.lang.String title,
java.lang.String anchor)
Builds a level 1 section
title with a custom anchor for later reference. |
MarkupDocBuilder |
sectionTitleWithAnchorLevel2(java.lang.String title)
Builds a level 2 section
title with an auto-generated anchor from the normalized title, for later reference. |
MarkupDocBuilder |
sectionTitleWithAnchorLevel2(java.lang.String title,
java.lang.String anchor)
Builds a level 2 section
title with a custom anchor for later reference. |
MarkupDocBuilder |
sectionTitleWithAnchorLevel3(java.lang.String title)
Builds a level 3 section
title with an auto-generated anchor from the normalized title, for later reference. |
MarkupDocBuilder |
sectionTitleWithAnchorLevel3(java.lang.String title,
java.lang.String anchor)
Builds a level 3 section
title with a custom anchor for later reference. |
MarkupDocBuilder |
sectionTitleWithAnchorLevel4(java.lang.String title)
Builds a level 4 section
title with an auto-generated anchor from the normalized title, for later reference. |
MarkupDocBuilder |
sectionTitleWithAnchorLevel4(java.lang.String title,
java.lang.String anchor)
Builds a level 4 section
title with a custom anchor for later reference. |
MarkupDocBuilder |
sectionTitleWithAnchorLevel5(java.lang.String title)
Builds a level 5 section
title with an auto-generated anchor from the normalized title, for later reference. |
MarkupDocBuilder |
sectionTitleWithAnchorLevel5(java.lang.String title,
java.lang.String anchor)
Builds a level 5 section
title with a custom anchor for later reference. |
MarkupDocBuilder |
table(java.util.List<java.util.List<java.lang.String>> cells)
Builds a table without column specifiers, using specified cell values.
|
MarkupDocBuilder |
text(java.lang.String text)
Builds a regular text.
|
MarkupDocBuilder |
textLine(java.lang.String text)
Builds a regular text line.
|
MarkupDocBuilder |
textLine(java.lang.String text,
boolean forceLineBreak)
Builds a regular text line.
|
java.lang.String |
toString()
Returns a string representation of the document.
|
protected void |
unorderedList(Markup markup,
java.util.List<java.lang.String> list) |
protected void |
unorderedListItem(Markup markup,
java.lang.String item) |
MarkupDocBuilder |
withAnchorPrefix(java.lang.String prefix)
Configure this builder to prefix all generated anchors with
prefix. |
void |
writeToFile(java.nio.file.Path file,
java.nio.charset.Charset charset,
java.nio.file.OpenOption... options)
Writes the content of the builder to a file.
|
void |
writeToFileWithoutExtension(java.nio.file.Path file,
java.nio.charset.Charset charset,
java.nio.file.OpenOption... options)
2 newLines are needed at the end of file for file to be included without protection.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaddFileExtension, anchor, block, boldText, copy, crossReference, crossReferenceRaw, documentTitle, importMarkup, italicText, listingBlock, literalText, newLine, paragraph, sectionTitleLevel, sectionTitleWithAnchorLevel, tableWithColumnSpecs, unorderedList, unorderedListItemprotected static final boolean LINE_BREAK_DEFAULT
protected static final java.util.regex.Pattern ANCHOR_UNIGNORABLE_PATTERN
protected static final java.util.regex.Pattern ANCHOR_IGNORABLE_PATTERN
protected static final java.lang.String ANCHOR_SEPARATION_CHARACTERS
protected static final int MAX_TITLE_LEVEL
protected static final java.lang.String NEW_LINES
protected static final java.lang.String WHITESPACE
protected java.lang.StringBuilder documentBuilder
protected java.lang.String newLine
protected org.slf4j.Logger logger
protected java.lang.String anchorPrefix
public AbstractMarkupDocBuilder()
public AbstractMarkupDocBuilder(java.lang.String newLine)
protected abstract MarkupLanguage getMarkupLanguage()
public MarkupDocBuilder withAnchorPrefix(java.lang.String prefix)
MarkupDocBuilderprefix.withAnchorPrefix in interface MarkupDocBuilderprefix - anchor prefixpublic java.lang.String getAnchorPrefix()
getAnchorPrefix in interface MarkupDocBuilderprotected void documentTitle(Markup markup, java.lang.String title)
protected void sectionTitleLevel(Markup markup, int level, java.lang.String title)
protected void sectionTitleWithAnchorLevel(Markup markup, int level, java.lang.String title, java.lang.String anchor)
public MarkupDocBuilder sectionTitleWithAnchorLevel(int level, java.lang.String title)
MarkupDocBuildertitle with an auto-generated anchor from the normalized title, for later reference.sectionTitleWithAnchorLevel(level, title, null).sectionTitleWithAnchorLevel in interface MarkupDocBuilderlevel - section title level [1, 5]title - titlepublic MarkupDocBuilder sectionTitleLevel1(java.lang.String title)
MarkupDocBuildertitle.sectionTitleLevel1 in interface MarkupDocBuildertitle - titlepublic MarkupDocBuilder sectionTitleWithAnchorLevel1(java.lang.String title, java.lang.String anchor)
MarkupDocBuildertitle with a custom anchor for later reference.anchor will be normalized anyway.sectionTitleWithAnchorLevel1 in interface MarkupDocBuildertitle - titleanchor - custom anchor. If null, auto-generate the anchor from the normalized title.public MarkupDocBuilder sectionTitleWithAnchorLevel1(java.lang.String title)
MarkupDocBuildertitle with an auto-generated anchor from the normalized title, for later reference.sectionTitleWithAnchorLevel1(title, null).sectionTitleWithAnchorLevel1 in interface MarkupDocBuildertitle - titlepublic MarkupDocBuilder sectionTitleLevel2(java.lang.String title)
MarkupDocBuildertitle.sectionTitleLevel2 in interface MarkupDocBuildertitle - titlepublic MarkupDocBuilder sectionTitleWithAnchorLevel2(java.lang.String title, java.lang.String anchor)
MarkupDocBuildertitle with a custom anchor for later reference.anchor will be normalized anyway.sectionTitleWithAnchorLevel2 in interface MarkupDocBuildertitle - titleanchor - custom anchor. If null, auto-generate the anchor from the normalized title.public MarkupDocBuilder sectionTitleWithAnchorLevel2(java.lang.String title)
MarkupDocBuildertitle with an auto-generated anchor from the normalized title, for later reference.sectionTitleWithAnchorLevel2(title, null).sectionTitleWithAnchorLevel2 in interface MarkupDocBuildertitle - titlepublic MarkupDocBuilder sectionTitleLevel3(java.lang.String title)
MarkupDocBuildertitle.sectionTitleLevel3 in interface MarkupDocBuildertitle - titlepublic MarkupDocBuilder sectionTitleWithAnchorLevel3(java.lang.String title, java.lang.String anchor)
MarkupDocBuildertitle with a custom anchor for later reference.anchor will be normalized anyway.sectionTitleWithAnchorLevel3 in interface MarkupDocBuildertitle - titleanchor - custom anchor. If null, auto-generate the anchor from the normalized title.public MarkupDocBuilder sectionTitleWithAnchorLevel3(java.lang.String title)
MarkupDocBuildertitle with an auto-generated anchor from the normalized title, for later reference.sectionTitleWithAnchorLevel3(title, null).sectionTitleWithAnchorLevel3 in interface MarkupDocBuildertitle - titlepublic MarkupDocBuilder sectionTitleLevel4(java.lang.String title)
MarkupDocBuildertitle.sectionTitleLevel4 in interface MarkupDocBuildertitle - titlepublic MarkupDocBuilder sectionTitleWithAnchorLevel4(java.lang.String title, java.lang.String anchor)
MarkupDocBuildertitle with a custom anchor for later reference.anchor will be normalized anyway.sectionTitleWithAnchorLevel4 in interface MarkupDocBuildertitle - titleanchor - custom anchor. If null, auto-generate the anchor from the normalized title.public MarkupDocBuilder sectionTitleWithAnchorLevel4(java.lang.String title)
MarkupDocBuildertitle with an auto-generated anchor from the normalized title, for later reference.sectionTitleWithAnchorLevel4(title, null).sectionTitleWithAnchorLevel4 in interface MarkupDocBuildertitle - titlepublic MarkupDocBuilder sectionTitleLevel5(java.lang.String title)
MarkupDocBuildertitle.sectionTitleLevel5 in interface MarkupDocBuildertitle - titlepublic MarkupDocBuilder sectionTitleWithAnchorLevel5(java.lang.String title, java.lang.String anchor)
MarkupDocBuildertitle with a custom anchor for later reference.anchor will be normalized anyway.sectionTitleWithAnchorLevel5 in interface MarkupDocBuildertitle - titleanchor - custom anchor. If null, auto-generate the anchor from the normalized title.public MarkupDocBuilder sectionTitleWithAnchorLevel5(java.lang.String title)
MarkupDocBuildertitle with an auto-generated anchor from the normalized title, for later reference.sectionTitleWithAnchorLevel5(title, null).sectionTitleWithAnchorLevel5 in interface MarkupDocBuildertitle - titlepublic MarkupDocBuilder textLine(java.lang.String text, boolean forceLineBreak)
MarkupDocBuildertextLine in interface MarkupDocBuildertext - textforceLineBreak - add an explicit line break if true.public MarkupDocBuilder textLine(java.lang.String text)
MarkupDocBuildertextLine(text, false).textLine in interface MarkupDocBuildertext - textpublic MarkupDocBuilder text(java.lang.String text)
MarkupDocBuildertext in interface MarkupDocBuildertext - textpublic MarkupDocBuilder paragraph(java.lang.String text)
MarkupDocBuilderparagraph(text, false).paragraph in interface MarkupDocBuildertext - multi-line textpublic MarkupDocBuilder block(java.lang.String text, MarkupBlockStyle style)
MarkupDocBuildertext with specified style.block(String, MarkupBlockStyle, null, null).block in interface MarkupDocBuildertext - textstyle - block stylepublic MarkupDocBuilder listingBlock(java.lang.String text)
MarkupDocBuilderlistingBlock(String, null).listingBlock in interface MarkupDocBuildertext - multi-line textprotected void delimitedBlockText(Markup begin, java.lang.String text, Markup end)
protected void delimitedTextWithoutLineBreaks(Markup begin, java.lang.String text, Markup end)
protected void delimitedBlockText(Markup markup, java.lang.String text)
protected void delimitedTextWithoutLineBreaks(Markup markup, java.lang.String text)
protected void literalText(Markup markup, java.lang.String text)
public MarkupDocBuilder literalTextLine(java.lang.String text, boolean forceLineBreak)
MarkupDocBuilderliteralTextLine in interface MarkupDocBuildertext - textforceLineBreak - add an explicit line break if true.public MarkupDocBuilder literalTextLine(java.lang.String text)
MarkupDocBuilderliteralTextLine(text, false).literalTextLine in interface MarkupDocBuildertext - textprotected void boldText(Markup markup, java.lang.String text)
public MarkupDocBuilder boldTextLine(java.lang.String text, boolean forceLineBreak)
MarkupDocBuilderboldTextLine in interface MarkupDocBuildertext - textforceLineBreak - add an explicit line break if true.public MarkupDocBuilder boldTextLine(java.lang.String text)
MarkupDocBuilderboldTextLine(text, false).boldTextLine in interface MarkupDocBuildertext - textprotected void italicText(Markup markup, java.lang.String text)
public MarkupDocBuilder italicTextLine(java.lang.String text, boolean forceLineBreak)
MarkupDocBuilderitalicTextLine in interface MarkupDocBuildertext - textforceLineBreak - add an explicit line break if true.public MarkupDocBuilder italicTextLine(java.lang.String text)
MarkupDocBuilderitalicTextLine(text, false).italicTextLine in interface MarkupDocBuildertext - textprotected void unorderedList(Markup markup, java.util.List<java.lang.String> list)
protected void unorderedListItem(Markup markup, java.lang.String item)
public MarkupDocBuilder anchor(java.lang.String anchor)
MarkupDocBuilderanchor for later reference.anchor will be normalized anyway.anchor in interface MarkupDocBuilderanchor - custom anchorprotected java.lang.String normalizeAnchor(Markup spaceEscape, java.lang.String anchor)
public MarkupDocBuilder crossReferenceRaw(java.lang.String anchor, java.lang.String text)
MarkupDocBuilderanchor with specified text.MarkupDocBuilder.crossReference(String, String) instead.anchor is built as-is, without any normalization.crossReferenceRaw in interface MarkupDocBuilderanchor - anchor to point totext - display textpublic MarkupDocBuilder crossReferenceRaw(java.lang.String anchor)
MarkupDocBuilderanchor.MarkupDocBuilder.crossReference(String) instead.anchor is built as-is, without any normalization.crossReferenceRaw in interface MarkupDocBuilderanchor - anchor to point topublic MarkupDocBuilder crossReference(java.lang.String anchor, java.lang.String text)
MarkupDocBuilderanchor with specified text.anchor will be normalized anyway.crossReference in interface MarkupDocBuilderanchor - anchor to point totext - display textpublic MarkupDocBuilder crossReference(java.lang.String anchor)
MarkupDocBuilderanchor.anchor will be normalized anyway.crossReference in interface MarkupDocBuilderanchor - anchor to point toprotected void newLine(Markup markup, boolean forceLineBreak)
public MarkupDocBuilder newLine()
MarkupDocBuildernewLine in interface MarkupDocBuilderpublic MarkupDocBuilder importMarkup(java.io.Reader markupText, MarkupLanguage markupLanguage)
MarkupDocBuilderimportMarkup(markupText, markupLanguage, 0).importMarkup in interface MarkupDocBuildermarkupText - markup reader to read data frommarkupLanguage - identify the imported markup languageprotected java.lang.String convert(java.lang.String markupText,
MarkupLanguage markupLanguage)
protected void importMarkupStyle1(java.util.regex.Pattern titlePattern,
Markup titlePrefix,
java.io.Reader markupText,
MarkupLanguage markupLanguage,
int levelOffset)
protected void importMarkupStyle2(java.util.regex.Pattern titlePattern,
java.lang.String titleFormat,
boolean startFrom0,
java.io.Reader markupText,
MarkupLanguage markupLanguage,
int levelOffset)
public MarkupDocBuilder table(java.util.List<java.util.List<java.lang.String>> cells)
MarkupDocBuildertableWithColumnSpecs(null, cells).table in interface MarkupDocBuildercells - cell valuespublic java.lang.String toString()
MarkupDocBuildertoString in interface MarkupDocBuildertoString in class java.lang.Objectpublic java.nio.file.Path addFileExtension(java.nio.file.Path file)
MarkupDocBuilderaddFileExtension in interface MarkupDocBuilderfile - without extensionpublic void writeToFileWithoutExtension(java.nio.file.Path file,
java.nio.charset.Charset charset,
java.nio.file.OpenOption... options)
writeToFileWithoutExtension in interface MarkupDocBuilderfile - the generated filecharset - the the charset to use for encodingoptions - the file open optionspublic java.lang.String replaceNewLines(java.lang.String content,
java.lang.String replacement)
public java.lang.String replaceNewLines(java.lang.String content)
public java.lang.String replaceNewLinesWithWhiteSpace(java.lang.String content)
public void writeToFile(java.nio.file.Path file,
java.nio.charset.Charset charset,
java.nio.file.OpenOption... options)
MarkupDocBuilderwriteToFile in interface MarkupDocBuilderfile - the generated file without extensioncharset - the the charset to use for encodingoptions - the file open options