Class HtmlAppendableBase<T extends HtmlAppendableBase<T>>
- java.lang.Object
-
- com.vladsch.flexmark.util.html.HtmlAppendableBase<T>
-
- All Implemented Interfaces:
HtmlAppendable
,LineAppendable
,java.lang.Appendable
,java.lang.Iterable<LineInfo>
- Direct Known Subclasses:
HtmlBuilder
,HtmlWriter
public class HtmlAppendableBase<T extends HtmlAppendableBase<T>> extends java.lang.Object implements HtmlAppendable
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.vladsch.flexmark.util.sequence.LineAppendable
LineAppendable.Options
-
-
Field Summary
-
Fields inherited from interface com.vladsch.flexmark.util.sequence.LineAppendable
ALLOW_LEADING_EOL, ALLOW_LEADING_WHITESPACE, COLLAPSE_WHITESPACE, CONVERT_TABS, F_COLLAPSE_WHITESPACE, F_CONVERT_TABS, F_FORMAT_ALL, F_PASS_THROUGH, F_PREFIX_PRE_FORMATTED, F_TRIM_LEADING_EOL, F_TRIM_LEADING_WHITESPACE, F_TRIM_TRAILING_WHITESPACE, F_WHITESPACE_REMOVAL, FORMAT_ALL, O_COLLAPSE_WHITESPACE, O_CONVERT_TABS, O_FORMAT_ALL, O_PASS_THROUGH, O_PREFIX_PRE_FORMATTED, O_TRIM_LEADING_EOL, O_TRIM_LEADING_WHITESPACE, O_TRIM_TRAILING_WHITESPACE, PASS_THROUGH, PREFIX_PRE_FORMATTED, TRIM_LEADING_WHITESPACE, TRIM_TRAILING_WHITESPACE
-
-
Constructor Summary
Constructors Constructor Description HtmlAppendableBase(int indentSize, int formatOptions)
HtmlAppendableBase(LineAppendable other, boolean inheritIndent)
HtmlAppendableBase(java.lang.Appendable other, int indentSize, int formatOptions)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description T
addIndentOnFirstEOL(java.lang.Runnable listener)
Add an indent on first EOL appended and run runnableT
addPrefix(java.lang.CharSequence prefix)
Add to prefix appended after a new line character for every line and after a new line in pre-formatted sectionsT
addPrefix(java.lang.CharSequence prefix, boolean afterEol)
Add to prefix appended after a new line character for every line and after a new line in pre-formatted sectionsT
append(char c)
T
append(char c, int count)
T
append(LineAppendable lines, int startLine, int endLine, boolean withPrefixes)
Append lines from another line formatting appendable.T
append(java.lang.CharSequence csq)
T
append(java.lang.CharSequence csq, int start, int end)
<T extends java.lang.Appendable>
TappendTo(T out, boolean withPrefixes, int maxBlankLines, int maxTrailingBlankLines, int startLine, int endLine)
append lines to appendable with given maximum trailing blank lines and given prefix to add to all linesT
attr(Attribute... attribute)
T
attr(Attributes attributes)
T
attr(java.lang.CharSequence attrName, java.lang.CharSequence value)
T
blankLine()
Add a blank line, if there is not one already appended.T
blankLine(int count)
Add a blank lines, if there isn't already given number of blank lines appended.T
blankLineIf(boolean predicate)
Add a blank line, if predicate is true and there isn't already blank lines appended.T
changeOptions(int addFlags, int removeFlags)
T
closePre()
T
closePreFormatted()
Close preformatted section and suspend content modificationT
closeTag(java.lang.CharSequence tagName)
int
column()
Get column offset after last appendboolean
endsWithEOL()
int
getAfterEolPrefixDelta()
Get pending prefix after EOLAttributes
getAttributes()
BasedSequence
getBeforeEolPrefix()
Get prefix used before EOLISequenceBuilder<?,?>
getBuilder()
Get builder used for accumulationHtmlAppendable
getEmptyAppendable()
BasedSequence
getIndentPrefix()
Get prefix appended after a new line character for every indent levelBasedSequence
getLine(int lineIndex)
Get Line at given line indexint
getLineCount()
Get the number of lines appended, not including any unterminated onesint
getLineCountWithPending()
Get the number of lines appended, including any unterminated onesLineInfo
getLineInfo(int lineIndex)
Get Line information at given line indexjava.lang.Iterable<BasedSequence>
getLines(int maxTrailingBlankLines, int startLine, int endLine, boolean withPrefixes)
Full line iterator over some linesjava.lang.Iterable<LineInfo>
getLinesInfo(int maxTrailingBlankLines, int startLine, int endLine)
Full line iterator with line infojava.util.Stack<java.lang.String>
getOpenTags()
java.util.List<java.lang.String>
getOpenTagsAfterLast(java.lang.CharSequence latestTag)
protected java.lang.String
getOpenTagText()
int
getOptions()
Get current options as bit mask flagsBitFieldSet<LineAppendable.Options>
getOptionSet()
Get current options as set which can be used to modify optionsint
getPendingEOL()
Get number of EOLs at end of appendable, this is actually number of tail blank linesint
getPendingSpace()
Get number of spaces at end of pending textBasedSequence
getPrefix()
Get prefix being applied to all lines, even in pre-formatted sections This is the prefix that will be set after EOLint
getTrailingBlankLines(int endLine)
Get trailing blank line count ending on given lineT
indent()
Increase the indent level, will terminate the current line if there is unterminated textboolean
inPre()
void
insertLine(int lineIndex, java.lang.CharSequence prefix, java.lang.CharSequence text)
Insert a line at the index with given content and prefix for a lineboolean
isPendingSpace()
Test if trailing text ends in space or tabboolean
isPreFormatted()
boolean
isSuppressCloseTagLine()
boolean
isSuppressOpenTagLine()
java.util.Iterator<LineInfo>
iterator()
Full line iterator NOTE: will not issue line() to terminate any unterminated lines before iteration and will not include unterminated lines in iterationT
line()
Add a new line if there was any unterminated text appended or if this is a preformatted regionT
lineIf(boolean predicate)
Add a new line, if predicate is true and line() would add an EOL.T
lineOnFirstText(boolean value)
T
lineWithTrailingSpaces(int count)
Add a new line, keep trailing spaces if there was any unterminated text appendedint
offset()
Get text offset of all output lines, excluding any text for the last line being accumulatedint
offsetWithPending()
Get offset after last append as if EOL was added but without the EOL itselfT
openPre()
T
openPreFormatted(boolean keepIndent)
Open preformatted section and suspend content modificationT
popOptions()
T
popPrefix()
Pop a prefix from the stack and set the current prefixT
popPrefix(boolean afterEol)
Pop a prefix from the stack and set the current prefixprotected void
popTag(java.lang.CharSequence tagName)
T
pushOptions()
T
pushPrefix()
Save the current prefix on the stackprotected void
pushTag(java.lang.CharSequence tagName)
T
raw(java.lang.CharSequence s)
T
raw(java.lang.CharSequence s, int count)
T
rawIndentedPre(java.lang.CharSequence s)
T
rawPre(java.lang.CharSequence s)
T
removeExtraBlankLines(int maxBlankLines, int maxTrailingBlankLines, int startLine, int endLine)
Normalize the appendable by removing extra blank lines in the body or at the end of given line rangeT
removeIndentOnFirstEOL(java.lang.Runnable listener)
Remove runnable, has no effect if EOL was already appended and runnable was runT
removeLines(int startLine, int endLine)
T
setAttributes(Attributes attributes)
T
setIndentPrefix(java.lang.CharSequence prefix)
Set prefix to append after a new line character for every indent levelvoid
setLine(int lineIndex, java.lang.CharSequence prefix, java.lang.CharSequence text)
Set content and prefix for a lineT
setOptions(int flags)
Set options on processing textT
setPrefix(java.lang.CharSequence prefix)
Set prefix appended after a new line character for every line and after a new line in pre-formatted sectionsT
setPrefix(java.lang.CharSequence prefix, boolean afterEol)
Set prefix appended after a new line character for every line and after a new line in pre-formatted sectionsvoid
setPrefixLength(int lineIndex, int prefixEndIndex)
Change prefix length for a given line without changing the line contentT
setSuppressCloseTagLine(boolean suppressCloseTagLine)
void
setSuppressOpenTagLine(boolean suppressOpenTagLine)
T
tag(java.lang.CharSequence tagName)
T
tag(java.lang.CharSequence tagName, boolean voidElement)
T
tag(java.lang.CharSequence tagName, boolean withIndent, boolean withLine, java.lang.Runnable runnable)
T
tag(java.lang.CharSequence tagName, java.lang.Runnable runnable)
protected void
tagClosed(java.lang.CharSequence tagName)
T
tagIndent(java.lang.CharSequence tagName, java.lang.Runnable runnable)
T
tagLine(java.lang.CharSequence tagName)
T
tagLine(java.lang.CharSequence tagName, boolean voidElement)
T
tagLine(java.lang.CharSequence tagName, java.lang.Runnable runnable)
T
tagLineIndent(java.lang.CharSequence tagName, java.lang.Runnable runnable)
protected void
tagOpened(java.lang.CharSequence tagName)
T
tagVoid(java.lang.CharSequence tagName)
T
tagVoidLine(java.lang.CharSequence tagName)
T
text(java.lang.CharSequence s)
java.lang.CharSequence
toSequence(int maxBlankLines, int maxTrailingBlankLines, boolean withPrefixes)
get the resulting text for all linesjava.lang.String
toString()
java.lang.String
toString(int maxBlankLines, int maxTrailingBlankLines, boolean withPrefixes)
get the resulting text for all linesT
unIndent()
Decrease the indent level, min level is 0, will terminate the current line if there is unterminated textT
unIndentNoEol()
Decrease the indent level, if there is unterminated text then unindented prefix is to be applied after the next EOL.T
withAttr()
T
withCondIndent()
T
withCondLineOnChildText()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.vladsch.flexmark.util.sequence.LineAppendable
addOptions, append, append, appendAll, appendTo, appendTo, appendTo, appendTo, appendToSilently, appendToSilently, appendToSilently, appendToSilently, clearLineOnFirstText, copyAppendable, copyAppendable, copyAppendable, copyAppendable, copyAppendable, get, getLineContent, getLinePrefix, getLines, getLines, getLines, getLines, getLinesInfo, getLinesInfo, getTrailingBlankLines, isEmpty, isNotEmpty, noPreserveSpaces, noTrimLeading, preserveSpaces, removeExtraBlankLines, removeOptions, setLineOnFirstText, setOptions, setOptions, toSequence, toSequence, toSequence, toSequence, toString, toString, toString, toString, trimLeading
-
-
-
-
Constructor Detail
-
HtmlAppendableBase
public HtmlAppendableBase(LineAppendable other, boolean inheritIndent)
-
HtmlAppendableBase
public HtmlAppendableBase(int indentSize, int formatOptions)
-
HtmlAppendableBase
public HtmlAppendableBase(@Nullable java.lang.Appendable other, int indentSize, int formatOptions)
-
-
Method Detail
-
getEmptyAppendable
@NotNull public HtmlAppendable getEmptyAppendable()
- Specified by:
getEmptyAppendable
in interfaceLineAppendable
-
isSuppressOpenTagLine
public boolean isSuppressOpenTagLine()
-
setSuppressOpenTagLine
public void setSuppressOpenTagLine(boolean suppressOpenTagLine)
-
isSuppressCloseTagLine
public boolean isSuppressCloseTagLine()
-
setSuppressCloseTagLine
@NotNull public T setSuppressCloseTagLine(boolean suppressCloseTagLine)
-
toString
@NotNull public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
openPre
@NotNull public T openPre()
- Specified by:
openPre
in interfaceHtmlAppendable
-
closePre
@NotNull public T closePre()
- Specified by:
closePre
in interfaceHtmlAppendable
-
inPre
public boolean inPre()
- Specified by:
inPre
in interfaceHtmlAppendable
-
raw
@NotNull public T raw(@NotNull java.lang.CharSequence s)
- Specified by:
raw
in interfaceHtmlAppendable
-
raw
@NotNull public T raw(@NotNull java.lang.CharSequence s, int count)
- Specified by:
raw
in interfaceHtmlAppendable
-
rawPre
@NotNull public T rawPre(@NotNull java.lang.CharSequence s)
- Specified by:
rawPre
in interfaceHtmlAppendable
-
rawIndentedPre
@NotNull public T rawIndentedPre(@NotNull java.lang.CharSequence s)
- Specified by:
rawIndentedPre
in interfaceHtmlAppendable
-
text
@NotNull public T text(@NotNull java.lang.CharSequence s)
- Specified by:
text
in interfaceHtmlAppendable
-
attr
@NotNull public T attr(@NotNull java.lang.CharSequence attrName, @NotNull java.lang.CharSequence value)
- Specified by:
attr
in interfaceHtmlAppendable
-
attr
@NotNull public T attr(@NotNull Attribute... attribute)
- Specified by:
attr
in interfaceHtmlAppendable
-
attr
@NotNull public T attr(@NotNull Attributes attributes)
- Specified by:
attr
in interfaceHtmlAppendable
-
withAttr
@NotNull public T withAttr()
- Specified by:
withAttr
in interfaceHtmlAppendable
-
getAttributes
public Attributes getAttributes()
- Specified by:
getAttributes
in interfaceHtmlAppendable
-
setAttributes
@NotNull public T setAttributes(@NotNull Attributes attributes)
- Specified by:
setAttributes
in interfaceHtmlAppendable
-
withCondLineOnChildText
@NotNull public T withCondLineOnChildText()
- Specified by:
withCondLineOnChildText
in interfaceHtmlAppendable
-
withCondIndent
@NotNull public T withCondIndent()
- Specified by:
withCondIndent
in interfaceHtmlAppendable
-
tag
@NotNull public T tag(@NotNull java.lang.CharSequence tagName)
- Specified by:
tag
in interfaceHtmlAppendable
-
tag
@NotNull public T tag(@NotNull java.lang.CharSequence tagName, @NotNull java.lang.Runnable runnable)
- Specified by:
tag
in interfaceHtmlAppendable
-
tagVoid
@NotNull public T tagVoid(@NotNull java.lang.CharSequence tagName)
- Specified by:
tagVoid
in interfaceHtmlAppendable
-
getOpenTagText
protected java.lang.String getOpenTagText()
-
pushTag
protected void pushTag(java.lang.CharSequence tagName)
-
popTag
protected void popTag(java.lang.CharSequence tagName)
-
tagOpened
protected void tagOpened(java.lang.CharSequence tagName)
-
tagClosed
protected void tagClosed(java.lang.CharSequence tagName)
-
getOpenTags
@NotNull public java.util.Stack<java.lang.String> getOpenTags()
- Specified by:
getOpenTags
in interfaceHtmlAppendable
-
getOpenTagsAfterLast
@NotNull public java.util.List<java.lang.String> getOpenTagsAfterLast(@NotNull java.lang.CharSequence latestTag)
- Specified by:
getOpenTagsAfterLast
in interfaceHtmlAppendable
-
tag
@NotNull public T tag(@NotNull java.lang.CharSequence tagName, boolean voidElement)
- Specified by:
tag
in interfaceHtmlAppendable
-
closeTag
@NotNull public T closeTag(@NotNull java.lang.CharSequence tagName)
- Specified by:
closeTag
in interfaceHtmlAppendable
-
tag
@NotNull public T tag(@NotNull java.lang.CharSequence tagName, boolean withIndent, boolean withLine, @NotNull java.lang.Runnable runnable)
- Specified by:
tag
in interfaceHtmlAppendable
-
tagVoidLine
@NotNull public T tagVoidLine(@NotNull java.lang.CharSequence tagName)
- Specified by:
tagVoidLine
in interfaceHtmlAppendable
-
tagLine
@NotNull public T tagLine(@NotNull java.lang.CharSequence tagName)
- Specified by:
tagLine
in interfaceHtmlAppendable
-
tagLine
@NotNull public T tagLine(@NotNull java.lang.CharSequence tagName, boolean voidElement)
- Specified by:
tagLine
in interfaceHtmlAppendable
-
tagLine
@NotNull public T tagLine(@NotNull java.lang.CharSequence tagName, @NotNull java.lang.Runnable runnable)
- Specified by:
tagLine
in interfaceHtmlAppendable
-
tagIndent
@NotNull public T tagIndent(@NotNull java.lang.CharSequence tagName, @NotNull java.lang.Runnable runnable)
- Specified by:
tagIndent
in interfaceHtmlAppendable
-
tagLineIndent
@NotNull public T tagLineIndent(@NotNull java.lang.CharSequence tagName, @NotNull java.lang.Runnable runnable)
- Specified by:
tagLineIndent
in interfaceHtmlAppendable
-
iterator
@NotNull public java.util.Iterator<LineInfo> iterator()
Description copied from interface:LineAppendable
Full line iterator NOTE: will not issue line() to terminate any unterminated lines before iteration and will not include unterminated lines in iteration- Specified by:
iterator
in interfacejava.lang.Iterable<T extends HtmlAppendableBase<T>>
- Specified by:
iterator
in interfaceLineAppendable
- Returns:
- iterator over lines
-
getLines
@NotNull public java.lang.Iterable<BasedSequence> getLines(int maxTrailingBlankLines, int startLine, int endLine, boolean withPrefixes)
Description copied from interface:LineAppendable
Full line iterator over some linesNOTE: will issue line() to terminate any unterminated lines before iteration
- Specified by:
getLines
in interfaceLineAppendable
- Parameters:
maxTrailingBlankLines
- maximum trailing blank lines, -1 if trailing EOL should be removedstartLine
- start line indexendLine
- end line index, exclusivewithPrefixes
- true if prefixes should be included, else only non-prefix line text- Returns:
- iterator over lines
-
getLinesInfo
@NotNull public java.lang.Iterable<LineInfo> getLinesInfo(int maxTrailingBlankLines, int startLine, int endLine)
Description copied from interface:LineAppendable
Full line iterator with line infoNOTE: will issue line() to terminate any unterminated lines before iteration
- Specified by:
getLinesInfo
in interfaceLineAppendable
- Parameters:
maxTrailingBlankLines
- maximum trailing blank lines, -1 if trailing EOL should be removedstartLine
- start line indexendLine
- end line index, exclusive- Returns:
- iterator over lines
-
setPrefixLength
public void setPrefixLength(int lineIndex, int prefixEndIndex)
Description copied from interface:LineAppendable
Change prefix length for a given line without changing the line content- Specified by:
setPrefixLength
in interfaceLineAppendable
- Parameters:
lineIndex
- index of the lineprefixEndIndex
- new prefix length
-
insertLine
public void insertLine(int lineIndex, @NotNull java.lang.CharSequence prefix, @NotNull java.lang.CharSequence text)
Description copied from interface:LineAppendable
Insert a line at the index with given content and prefix for a line- Specified by:
insertLine
in interfaceLineAppendable
- Parameters:
lineIndex
- index of the lineprefix
- prefix of the linetext
- content text of the line
-
setLine
public void setLine(int lineIndex, @NotNull java.lang.CharSequence prefix, @NotNull java.lang.CharSequence text)
Description copied from interface:LineAppendable
Set content and prefix for a line- Specified by:
setLine
in interfaceLineAppendable
- Parameters:
lineIndex
- index of the lineprefix
- prefix of the linetext
- content text of the line
-
appendTo
public <T extends java.lang.Appendable> T appendTo(@NotNull T out, boolean withPrefixes, int maxBlankLines, int maxTrailingBlankLines, int startLine, int endLine) throws java.io.IOException
Description copied from interface:LineAppendable
append lines to appendable with given maximum trailing blank lines and given prefix to add to all linesNOTE:
- Specified by:
appendTo
in interfaceLineAppendable
- Type Parameters:
T
- type of out- Parameters:
out
- appendable to output the resulting lineswithPrefixes
- true if to include prefixesmaxBlankLines
- maximum blank lines to allow in the body,maxTrailingBlankLines
- maximum trailing blank lines at the end, if <maxBlankLines then maxBlankLines will be used, if -1 then no trailing EOL will be addedstartLine
- line from which to start outputendLine
- line at which to stop output- Returns:
- out
- Throws:
java.io.IOException
- if thrown by appendable
-
endsWithEOL
public boolean endsWithEOL()
- Specified by:
endsWithEOL
in interfaceLineAppendable
- Returns:
- true if not empty and have no unterminated lines
-
isPendingSpace
public boolean isPendingSpace()
Description copied from interface:LineAppendable
Test if trailing text ends in space or tab- Specified by:
isPendingSpace
in interfaceLineAppendable
- Returns:
- true if ending in space or tab
-
isPreFormatted
public boolean isPreFormatted()
- Specified by:
isPreFormatted
in interfaceLineAppendable
- Returns:
- true if in pre-formatted region
-
getTrailingBlankLines
public int getTrailingBlankLines(int endLine)
Description copied from interface:LineAppendable
Get trailing blank line count ending on given line- Specified by:
getTrailingBlankLines
in interfaceLineAppendable
- Parameters:
endLine
- end line- Returns:
- number of trailing blank lines
-
column
public int column()
Description copied from interface:LineAppendable
Get column offset after last append- Specified by:
column
in interfaceLineAppendable
- Returns:
- column offset after last append
-
getLineCount
public int getLineCount()
Description copied from interface:LineAppendable
Get the number of lines appended, not including any unterminated ones- Specified by:
getLineCount
in interfaceLineAppendable
- Returns:
- number of full lines appended
-
getLineCountWithPending
public int getLineCountWithPending()
Description copied from interface:LineAppendable
Get the number of lines appended, including any unterminated onesNOTE: if there is an unterminated line it will be available as the last line, without being terminated explicitly
- Specified by:
getLineCountWithPending
in interfaceLineAppendable
- Returns:
- number of lines appended
-
getOptions
public int getOptions()
Description copied from interface:LineAppendable
Get current options as bit mask flags- Specified by:
getOptions
in interfaceLineAppendable
- Returns:
- option flags
-
getPendingSpace
public int getPendingSpace()
Description copied from interface:LineAppendable
Get number of spaces at end of pending text- Specified by:
getPendingSpace
in interfaceLineAppendable
- Returns:
- number of eols at end of text
-
getPendingEOL
public int getPendingEOL()
Description copied from interface:LineAppendable
Get number of EOLs at end of appendable, this is actually number of tail blank lines- Specified by:
getPendingEOL
in interfaceLineAppendable
- Returns:
- number of eols at end of text
-
offset
public int offset()
Description copied from interface:LineAppendable
Get text offset of all output lines, excluding any text for the last line being accumulated- Specified by:
offset
in interfaceLineAppendable
- Returns:
- offset of text as would be returned for all
-
offsetWithPending
public int offsetWithPending()
Description copied from interface:LineAppendable
Get offset after last append as if EOL was added but without the EOL itself- Specified by:
offsetWithPending
in interfaceLineAppendable
- Returns:
- offset as would be returned by
LineAppendable.offset()
after line() call less 1 for EOL
-
getAfterEolPrefixDelta
public int getAfterEolPrefixDelta()
Description copied from interface:LineAppendable
Get pending prefix after EOL- Specified by:
getAfterEolPrefixDelta
in interfaceLineAppendable
- Returns:
- change in prefix length after next eol
-
getBuilder
@NotNull public ISequenceBuilder<?,?> getBuilder()
Description copied from interface:LineAppendable
Get builder used for accumulation- Specified by:
getBuilder
in interfaceLineAppendable
- Returns:
- builder used for accumulation
-
getPrefix
@NotNull public BasedSequence getPrefix()
Description copied from interface:LineAppendable
Get prefix being applied to all lines, even in pre-formatted sections This is the prefix that will be set after EOL- Specified by:
getPrefix
in interfaceLineAppendable
- Returns:
- char sequence of the current prefix
-
getBeforeEolPrefix
@NotNull public BasedSequence getBeforeEolPrefix()
Description copied from interface:LineAppendable
Get prefix used before EOL- Specified by:
getBeforeEolPrefix
in interfaceLineAppendable
- Returns:
- char sequence of the current prefix
-
getLineInfo
@NotNull public LineInfo getLineInfo(int lineIndex)
Description copied from interface:LineAppendable
Get Line information at given line indexNOTE: if there is an unterminated line it will be available as the last line, without being terminated explicitly
- Specified by:
getLineInfo
in interfaceLineAppendable
- Parameters:
lineIndex
- line index for the info to get- Returns:
- line info
-
getLine
@NotNull public BasedSequence getLine(int lineIndex)
Description copied from interface:LineAppendable
Get Line at given line indexNOTE: if there is an unterminated line it will be available as the last line, without being terminated explicitly
- Specified by:
getLine
in interfaceLineAppendable
- Parameters:
lineIndex
- line index- Returns:
- line char sequence
-
getIndentPrefix
@NotNull public BasedSequence getIndentPrefix()
Description copied from interface:LineAppendable
Get prefix appended after a new line character for every indent level- Specified by:
getIndentPrefix
in interfaceLineAppendable
- Returns:
- char sequence of the current indent prefix used for each indent level
-
toSequence
@NotNull public java.lang.CharSequence toSequence(int maxBlankLines, int maxTrailingBlankLines, boolean withPrefixes)
Description copied from interface:LineAppendable
get the resulting text for all lines- Specified by:
toSequence
in interfaceLineAppendable
- Parameters:
maxBlankLines
- maximum blank lines to allow in the textmaxTrailingBlankLines
- maximum trailing blank lineswithPrefixes
- true if to include prefixes- Returns:
- resulting text
-
toString
@NotNull public java.lang.String toString(int maxBlankLines, int maxTrailingBlankLines, boolean withPrefixes)
Description copied from interface:LineAppendable
get the resulting text for all lines- Specified by:
toString
in interfaceLineAppendable
- Parameters:
maxBlankLines
- maximum blank lines to allow in the textmaxTrailingBlankLines
- maximum trailing blank lineswithPrefixes
- true if to include prefixes- Returns:
- resulting text
-
getOptionSet
@NotNull public BitFieldSet<LineAppendable.Options> getOptionSet()
Description copied from interface:LineAppendable
Get current options as set which can be used to modify options- Specified by:
getOptionSet
in interfaceLineAppendable
- Returns:
- mutable option set
-
removeExtraBlankLines
@NotNull public T removeExtraBlankLines(int maxBlankLines, int maxTrailingBlankLines, int startLine, int endLine)
Description copied from interface:LineAppendable
Normalize the appendable by removing extra blank lines in the body or at the end of given line range- Specified by:
removeExtraBlankLines
in interfaceLineAppendable
- Parameters:
maxBlankLines
- maximum blank lines to allow in the bodymaxTrailingBlankLines
- maximum trailing blank lines ending on endLine, if <maxBlankLines then maxBlankLines will be usedstartLine
- line from which to start outputendLine
- line at which to stop output- Returns:
- this
-
removeLines
@NotNull public T removeLines(int startLine, int endLine)
- Specified by:
removeLines
in interfaceLineAppendable
-
pushOptions
@NotNull public T pushOptions()
- Specified by:
pushOptions
in interfaceLineAppendable
-
popOptions
@NotNull public T popOptions()
- Specified by:
popOptions
in interfaceLineAppendable
-
changeOptions
@NotNull public T changeOptions(int addFlags, int removeFlags)
- Specified by:
changeOptions
in interfaceLineAppendable
-
addIndentOnFirstEOL
@NotNull public T addIndentOnFirstEOL(@NotNull java.lang.Runnable listener)
Description copied from interface:LineAppendable
Add an indent on first EOL appended and run runnable- Specified by:
addIndentOnFirstEOL
in interfaceLineAppendable
- Parameters:
listener
- runnable to run if adding indent on first EOL- Returns:
- this
-
addPrefix
@NotNull public T addPrefix(@NotNull java.lang.CharSequence prefix)
Description copied from interface:LineAppendable
Add to prefix appended after a new line character for every line and after a new line in pre-formatted sectionsThis appends the sequence to current prefix
- Specified by:
addPrefix
in interfaceLineAppendable
- Parameters:
prefix
- prefix characters to add to current prefix for new lines appended after this is set- Returns:
- this
-
addPrefix
@NotNull public T addPrefix(@NotNull java.lang.CharSequence prefix, boolean afterEol)
Description copied from interface:LineAppendable
Add to prefix appended after a new line character for every line and after a new line in pre-formatted sectionsThis appends the sequence to current prefix
- Specified by:
addPrefix
in interfaceLineAppendable
- Parameters:
prefix
- prefix characters to add to current prefix for new lines appended after this is setafterEol
- if true prefix will take effect after EOL- Returns:
- this
-
append
@NotNull public T append(char c)
- Specified by:
append
in interfacejava.lang.Appendable
- Specified by:
append
in interfaceLineAppendable
-
append
@NotNull public T append(@NotNull java.lang.CharSequence csq)
- Specified by:
append
in interfacejava.lang.Appendable
- Specified by:
append
in interfaceLineAppendable
-
append
@NotNull public T append(@NotNull java.lang.CharSequence csq, int start, int end)
- Specified by:
append
in interfacejava.lang.Appendable
- Specified by:
append
in interfaceLineAppendable
-
append
@NotNull public T append(@NotNull LineAppendable lines, int startLine, int endLine, boolean withPrefixes)
Description copied from interface:LineAppendable
Append lines from another line formatting appendable.NOTE: does not apply formatting options. Instead, appends already formatted lines as is
If there is an accumulating line, it will be terminated by an EOL before appending lines
- Specified by:
append
in interfaceLineAppendable
- Parameters:
lines
- lines to append, any unterminated lines will be terminated by aLineAppendable.line()
invocation.startLine
- start line to appendendLine
- end line to append, endLine is excluded.withPrefixes
- true if to include prefixes from the lineAppendable.- Returns:
- this
-
blankLine
@NotNull public T blankLine()
Description copied from interface:LineAppendable
Add a blank line, if there is not one already appended.- Specified by:
blankLine
in interfaceLineAppendable
- Returns:
- this
-
blankLine
@NotNull public T blankLine(int count)
Description copied from interface:LineAppendable
Add a blank lines, if there isn't already given number of blank lines appended. Will append only enough blank lines to increase it to given level. If more are already in the wings then nothing is done.- Specified by:
blankLine
in interfaceLineAppendable
- Parameters:
count
- number of blank lines to append- Returns:
- this
-
blankLineIf
@NotNull public T blankLineIf(boolean predicate)
Description copied from interface:LineAppendable
Add a blank line, if predicate is true and there isn't already blank lines appended.- Specified by:
blankLineIf
in interfaceLineAppendable
- Parameters:
predicate
- when true append blank line- Returns:
- this
-
closePreFormatted
@NotNull public T closePreFormatted()
Description copied from interface:LineAppendable
Close preformatted section and suspend content modification- Specified by:
closePreFormatted
in interfaceLineAppendable
- Returns:
- this
-
indent
@NotNull public T indent()
Description copied from interface:LineAppendable
Increase the indent level, will terminate the current line if there is unterminated textNOTE: this is equivalent to pushPrefix(), addPrefix(getIndentPrefix()) but adds a flag to validate that
LineAppendable.unIndent()
is called only on prefixes added by this method- Specified by:
indent
in interfaceLineAppendable
- Returns:
- this
-
line
@NotNull public T line()
Description copied from interface:LineAppendable
Add a new line if there was any unterminated text appended or if this is a preformatted region- Specified by:
line
in interfaceLineAppendable
- Returns:
- this
-
lineIf
@NotNull public T lineIf(boolean predicate)
Description copied from interface:LineAppendable
Add a new line, if predicate is true and line() would add an EOL.- Specified by:
lineIf
in interfaceLineAppendable
- Parameters:
predicate
- callLineAppendable.line()
if value is true.- Returns:
- this
-
lineOnFirstText
@NotNull public T lineOnFirstText(boolean value)
- Specified by:
lineOnFirstText
in interfaceLineAppendable
-
lineWithTrailingSpaces
@NotNull public T lineWithTrailingSpaces(int count)
Description copied from interface:LineAppendable
Add a new line, keep trailing spaces if there was any unterminated text appendedNOTE: only applies in preformatted region or if the line is not empty
- Specified by:
lineWithTrailingSpaces
in interfaceLineAppendable
- Parameters:
count
- number of trailing spaces to add- Returns:
- this
-
openPreFormatted
@NotNull public T openPreFormatted(boolean keepIndent)
Description copied from interface:LineAppendable
Open preformatted section and suspend content modification- Specified by:
openPreFormatted
in interfaceLineAppendable
- Parameters:
keepIndent
- if true will add the current prefix to first line- Returns:
- this
-
popPrefix
@NotNull public T popPrefix()
Description copied from interface:LineAppendable
Pop a prefix from the stack and set the current prefix- Specified by:
popPrefix
in interfaceLineAppendable
- Returns:
- this
-
popPrefix
@NotNull public T popPrefix(boolean afterEol)
Description copied from interface:LineAppendable
Pop a prefix from the stack and set the current prefix- Specified by:
popPrefix
in interfaceLineAppendable
- Parameters:
afterEol
- if true prefix will take effect after EOL- Returns:
- this
-
pushPrefix
@NotNull public T pushPrefix()
Description copied from interface:LineAppendable
Save the current prefix on the stack- Specified by:
pushPrefix
in interfaceLineAppendable
- Returns:
- this
-
removeIndentOnFirstEOL
@NotNull public T removeIndentOnFirstEOL(@NotNull java.lang.Runnable listener)
Description copied from interface:LineAppendable
Remove runnable, has no effect if EOL was already appended and runnable was run- Specified by:
removeIndentOnFirstEOL
in interfaceLineAppendable
- Parameters:
listener
- runnable added with addIndentOnFirstEOL- Returns:
- this
-
append
@NotNull public T append(char c, int count)
- Specified by:
append
in interfaceLineAppendable
-
setIndentPrefix
@NotNull public T setIndentPrefix(@Nullable java.lang.CharSequence prefix)
Description copied from interface:LineAppendable
Set prefix to append after a new line character for every indent level- Specified by:
setIndentPrefix
in interfaceLineAppendable
- Parameters:
prefix
- prefix characters for new lines appended after this is set- Returns:
- this
-
setOptions
@NotNull public T setOptions(int flags)
Description copied from interface:LineAppendable
Set options on processing text- Specified by:
setOptions
in interfaceLineAppendable
- Parameters:
flags
- option flags- Returns:
- this
-
setPrefix
@NotNull public T setPrefix(@NotNull java.lang.CharSequence prefix)
Description copied from interface:LineAppendable
Set prefix appended after a new line character for every line and after a new line in pre-formatted sectionsThis appends the sequence to current prefix
- Specified by:
setPrefix
in interfaceLineAppendable
- Parameters:
prefix
- prefix characters to add to current prefix for new lines appended after this is set- Returns:
- this
-
setPrefix
@NotNull public T setPrefix(@Nullable java.lang.CharSequence prefix, boolean afterEol)
Description copied from interface:LineAppendable
Set prefix appended after a new line character for every line and after a new line in pre-formatted sectionsThis appends the sequence to current prefix
- Specified by:
setPrefix
in interfaceLineAppendable
- Parameters:
prefix
- prefix characters to add to current prefix for new lines appended after this is setafterEol
- if true prefix will take effect after EOL- Returns:
- this
-
unIndent
@NotNull public T unIndent()
Description copied from interface:LineAppendable
Decrease the indent level, min level is 0, will terminate the current line if there is unterminated textNOTE: this is equivalent to popPrefix() but with validation that it is called only on prefixes added by
LineAppendable.indent()
- Specified by:
unIndent
in interfaceLineAppendable
- Returns:
- this
-
unIndentNoEol
@NotNull public T unIndentNoEol()
Description copied from interface:LineAppendable
Decrease the indent level, if there is unterminated text then unindented prefix is to be applied after the next EOL.Will NOT terminate the current line if there is unterminated text
NOTE: should be used with
LineAppendable.addIndentOnFirstEOL(Runnable)
if callback is invoked- Specified by:
unIndentNoEol
in interfaceLineAppendable
- Returns:
- this
-
-