Class LineAppendableImpl
- All Implemented Interfaces:
LineAppendable
,Appendable
,Iterable<LineInfo>
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static class
(package private) static class
Nested classes/interfaces inherited from interface com.vladsch.flexmark.util.sequence.LineAppendable
LineAppendable.Options
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
private ISequenceBuilder<?,
?> private static final char
private int
private CharSequence
private boolean
(package private) int
private final BitFieldSet<LineAppendable.Options>
private final boolean
private CharSequence
private CharSequence
private final Stack<CharSequence>
private int
private int
private int
private int
private int
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
ConstructorsConstructorDescriptionLineAppendableImpl
(int formatOptions) LineAppendableImpl
(@Nullable Appendable builder, int formatOptions) LineAppendableImpl
(@Nullable Appendable appendable, BitFieldSet<LineAppendable.Options> formatOptions) -
Method Summary
Modifier and TypeMethodDescription@NotNull LineAppendable
addIndentOnFirstEOL
(@NotNull Runnable listener) Add an indent on first EOL appended and run runnableprivate void
addLineRange
(int start, int end, CharSequence prefix) @NotNull LineAppendable
addPrefix
(@NotNull CharSequence prefix, boolean afterEol) Add to prefix appended after a new line character for every line and after a new line in pre-formatted sectionsprivate boolean
any
(int flags) @NotNull LineAppendable
append
(char c) @NotNull LineAppendable
append
(char c, int count) @NotNull LineAppendable
append
(@NotNull LineAppendable lineAppendable, int startLine, int endLine, boolean withPrefixes) Append lines from another line formatting appendable.@NotNull LineAppendable
append
(@NotNull CharSequence csq) @NotNull LineAppendable
append
(@NotNull CharSequence csq, int start, int end) private void
appendEol
(int count) private void
appendEol
(@NotNull CharSequence eol) private void
appendImpl
(CharSequence s, int index) private void
appendImpl
(CharSequence csq, int start, int end) <T extends 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 lines<T extends Appendable>
TappendToNoLine
(T out, boolean withPrefixes, int maxBlankLines, int maxTrailingBlankLines, int startLine, int endLine) @NotNull LineAppendable
Add a blank line, if there is not one already appended.@NotNull LineAppendable
blankLine
(int count) Add a blank lines, if there isn't already given number of blank lines appended.@NotNull LineAppendable
blankLineIf
(boolean predicate) Add a blank line, if predicate is true and there isn't already blank lines appended.@NotNull LineAppendable
changeOptions
(int addFlags, int removeFlags) @NotNull LineAppendable
Close preformatted section and suspend content modificationint
column()
Get column offset after last appendprivate LineInfo
createLineInfo
(int lineIndex, @NotNull CharSequence prefix, @NotNull CharSequence content) private void
boolean
int
Get pending prefix after EOL@NotNull BasedSequence
Get prefix used before EOL@NotNull ISequenceBuilder<?,
?> Get builder used for accumulation@NotNull LineAppendable
@NotNull BasedSequence
Get prefix appended after a new line character for every indent level(package private) @NotNull LineAppendableImpl.IndexedLineInfoProxy
getIndexedLineInfoProxy
(int maxTrailingBlankLines, int startLine, int endLine) (package private) @NotNull LineAppendableImpl.IndexedLineProxy
getIndexedLineProxy
(int maxTrailingBlankLines, int startLine, int endLine, boolean withPrefixes) (package private) @NotNull LineInfo
@NotNull BasedSequence
getLine
(int lineIndex) Get Line at given line indexint
Get the number of lines appended, not including any unterminated onesint
Get the number of lines appended, including any unterminated ones@NotNull LineInfo
getLineInfo
(int lineIndex) Get Line information at given line indexprivate LineInfo
getLineRange
(int start, int end, CharSequence prefix) @NotNull Iterable<BasedSequence>
getLines
(int maxTrailingBlankLines, int startLine, int endLine, boolean withPrefixes) Full line iterator over some linesgetLinesInfo
(int maxTrailingBlankLines, int startLine, int endLine) Full line iterator with line info@NotNull BitFieldSet<LineAppendable.Options>
Get current options as set which can be used to modify optionsint
Get number of EOLs at end of appendable, this is actually number of tail blank linesint
Get number of spaces at end of pending text@NotNull BasedSequence
Get prefix being applied to all lines, even in pre-formatted sections This is the prefix that will be set after EOLprivate Pair<Range,
CharSequence> Returns text range if EOL was appendedint
getTrailingBlankLines
(int endLine) Get trailing blank line count ending on given line@NotNull LineAppendable
indent()
Increase the indent level, will terminate the current line if there is unterminated textvoid
insertLine
(int lineIndex, @NotNull CharSequence prefix, @NotNull CharSequence content) Insert a line at the index with given content and prefix for a lineprivate boolean
private boolean
boolean
Test if trailing text ends in space or tabprivate boolean
isPrefixed
(int currentLine) boolean
private boolean
private boolean
private boolean
iterator()
Full line iterator NOTE: will not issue line() to terminate any unterminated lines before iteration and will not include unterminated lines in iteration(package private) int
lastNonBlankLine
(int endLine) @NotNull LineAppendable
line()
Add a new line if there was any unterminated text appended or if this is a preformatted region@NotNull LineAppendable
lineIf
(boolean predicate) Add a new line, if predicate is true and line() would add an EOL.@NotNull LineAppendable
lineOnFirstText
(boolean value) @NotNull LineAppendable
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 accumulatedprivate int
Returns text offset before EOL if EOL was issuedint
Get offset after last append as if EOL was added but without the EOL itself@NotNull LineAppendable
openPreFormatted
(boolean addPrefixToFirstLine) Open preformatted section and suspend content modification@NotNull LineAppendable
@NotNull LineAppendable
popPrefix
(boolean afterEol) Pop a prefix from the stack and set the current prefix@NotNull LineAppendable
@NotNull LineAppendable
Save the current prefix on the stackprivate void
private void
private void
(package private) void
recomputeLineInfo
(int startLine) 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 range@NotNull LineAppendable
removeIndentOnFirstEOL
(@NotNull Runnable listener) Remove runnable, has no effect if EOL was already appended and runnable was run@NotNull LineAppendable
removeLines
(int startLine, int endLine) private int
removeLinesRaw
(int startLine, int endLine) Remove lines and return index from which line info must be recomputed@NotNull LineAppendable
repeat
(@NotNull CharSequence csq, int count) @NotNull LineAppendable
repeat
(@NotNull CharSequence csq, int start, int end, int count) private void
@NotNull LineAppendable
setIndentPrefix
(@Nullable CharSequence prefix) Set prefix to append after a new line character for every indent levelvoid
setLine
(int lineIndex, @NotNull CharSequence prefix, @NotNull CharSequence content) Set content and prefix for a line@NotNull LineAppendable
setOptions
(int flags) Set options on processing text@NotNull LineAppendable
setPrefix
(@Nullable 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 prefixLength) Change prefix length for a given line without changing the line content(package private) int
tailBlankLinesToRemove
(int endLine, int maxTrailingBlankLines) @NotNull CharSequence
toSequence
(int maxBlankLines, int maxTrailingBlankLines, boolean withPrefixes) get the resulting text for all linestoString()
@NotNull String
toString
(int maxBlankLines, int maxTrailingBlankLines, boolean withPrefixes) get the resulting text for all lines@NotNull LineAppendable
unIndent()
Decrease the indent level, min level is 0, will terminate the current line if there is unterminated text@NotNull LineAppendable
Decrease the indent level, if there is unterminated text then unindented prefix is to be applied after the next EOL.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
Methods inherited from interface com.vladsch.flexmark.util.sequence.LineAppendable
addOptions, addPrefix, 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, getOptions, getTrailingBlankLines, isEmpty, isNotEmpty, noPreserveSpaces, noTrimLeading, popPrefix, preserveSpaces, removeExtraBlankLines, removeOptions, setLineOnFirstText, setOptions, setOptions, setPrefix, toSequence, toSequence, toSequence, toSequence, toString, toString, toString, toString, trimLeading
-
Field Details
-
EOL
private static final char EOL- See Also:
-
passThrough
private final boolean passThrough -
options
-
preFormattedNesting
private int preFormattedNesting -
preFormattedFirstLine
private int preFormattedFirstLine -
preFormattedFirstLineOffset
private int preFormattedFirstLineOffset -
preFormattedLastLine
private int preFormattedLastLine -
preFormattedLastLineOffset
private int preFormattedLastLineOffset -
appendable
-
lines
-
prefix
-
prefixAfterEol
-
indentPrefix
-
prefixStack
-
indentPrefixStack
-
allWhitespace
private boolean allWhitespace -
lastWasWhitespace
private boolean lastWasWhitespace -
eolOnFirstText
private int eolOnFirstText -
indentsOnFirstEol
-
optionStack
-
modificationCount
int modificationCount
-
-
Constructor Details
-
LineAppendableImpl
public LineAppendableImpl(int formatOptions) -
LineAppendableImpl
-
LineAppendableImpl
public LineAppendableImpl(@Nullable @Nullable Appendable appendable, BitFieldSet<LineAppendable.Options> formatOptions)
-
-
Method Details
-
getEmptyAppendable
- Specified by:
getEmptyAppendable
in interfaceLineAppendable
-
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
-
setOptions
Description copied from interface:LineAppendable
Set options on processing text- Specified by:
setOptions
in interfaceLineAppendable
- Parameters:
flags
- option flags- Returns:
- this
-
pushOptions
- Specified by:
pushOptions
in interfaceLineAppendable
-
popOptions
- Specified by:
popOptions
in interfaceLineAppendable
-
changeOptions
- Specified by:
changeOptions
in interfaceLineAppendable
-
any
private boolean any(int flags) -
isConvertingTabs
private boolean isConvertingTabs() -
isTrimTrailingWhitespace
private boolean isTrimTrailingWhitespace() -
isTrimLeadingWhitespace
private boolean isTrimLeadingWhitespace() -
isCollapseWhitespace
private boolean isCollapseWhitespace() -
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
-
setIndentPrefix
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
-
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
Description copied from interface:LineAppendable
Get prefix used before EOL- Specified by:
getBeforeEolPrefix
in interfaceLineAppendable
- Returns:
- char sequence of the current prefix
-
addPrefix
@NotNull public @NotNull LineAppendable addPrefix(@NotNull @NotNull 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
-
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
-
setPrefix
@NotNull public @NotNull LineAppendable setPrefix(@Nullable @Nullable 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
-
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
-
rawIndent
private void rawIndent() -
rawUnIndent
private void rawUnIndent() -
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
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
-
pushPrefix
Description copied from interface:LineAppendable
Save the current prefix on the stack- Specified by:
pushPrefix
in interfaceLineAppendable
- Returns:
- this
-
popPrefix
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
-
getLastLineInfo
-
isTrailingBlankLine
private boolean isTrailingBlankLine() -
lastNonBlankLine
int lastNonBlankLine(int endLine) -
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
-
endsWithEOL
public boolean endsWithEOL()- Specified by:
endsWithEOL
in interfaceLineAppendable
- Returns:
- true if not empty and have no unterminated lines
-
getLineRange
-
resetBuilder
private void resetBuilder() -
addLineRange
-
appendEol
-
rawIndentsOnFirstEol
private void rawIndentsOnFirstEol() -
appendEol
private void appendEol(int count) -
isPrefixed
private boolean isPrefixed(int currentLine) -
getRangePrefixAfterEol
Returns text range if EOL was appendedNOTE: if range == Range.NULL then no line would be added
- Returns:
- pair of line text range if EOL was added and prefix
-
offsetAfterEol
private int offsetAfterEol()Returns text offset before EOL if EOL was issued- Returns:
- would be offset after adding EOL - 1
-
doEolOnFirstTest
private void doEolOnFirstTest() -
appendImpl
-
appendImpl
-
append
- Specified by:
append
in interfaceAppendable
- Specified by:
append
in interfaceLineAppendable
-
getBuilder
Description copied from interface:LineAppendable
Get builder used for accumulation- Specified by:
getBuilder
in interfaceLineAppendable
- Returns:
- builder used for accumulation
-
append
@NotNull public @NotNull LineAppendable append(@NotNull @NotNull CharSequence csq, int start, int end) - Specified by:
append
in interfaceAppendable
- Specified by:
append
in interfaceLineAppendable
-
append
- Specified by:
append
in interfaceAppendable
- Specified by:
append
in interfaceLineAppendable
-
append
- Specified by:
append
in interfaceLineAppendable
-
repeat
-
repeat
@NotNull public @NotNull LineAppendable repeat(@NotNull @NotNull CharSequence csq, int start, int end, int count) -
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
-
lineWithTrailingSpaces
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
-
lineIf
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
-
blankLine
Description copied from interface:LineAppendable
Add a blank line, if there is not one already appended.- Specified by:
blankLine
in interfaceLineAppendable
- Returns:
- this
-
blankLineIf
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
-
blankLine
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
-
lineOnFirstText
- Specified by:
lineOnFirstText
in interfaceLineAppendable
-
removeIndentOnFirstEOL
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
-
addIndentOnFirstEOL
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
-
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
-
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
-
getLineInfo
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
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
-
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
-
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
-
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
-
isPreFormatted
public boolean isPreFormatted()- Specified by:
isPreFormatted
in interfaceLineAppendable
- Returns:
- true if in pre-formatted region
-
openPreFormatted
Description copied from interface:LineAppendable
Open preformatted section and suspend content modification- Specified by:
openPreFormatted
in interfaceLineAppendable
- Parameters:
addPrefixToFirstLine
- if true will add the current prefix to first line- Returns:
- this
-
closePreFormatted
Description copied from interface:LineAppendable
Close preformatted section and suspend content modification- Specified by:
closePreFormatted
in interfaceLineAppendable
- Returns:
- this
-
toString
-
toString
@NotNull public @NotNull 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
-
toSequence
@NotNull public @NotNull 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
-
appendTo
public <T extends Appendable> T appendTo(@NotNull T out, boolean withPrefixes, int maxBlankLines, int maxTrailingBlankLines, int startLine, int endLine) throws 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:
IOException
- if thrown by appendable
-
appendToNoLine
public <T extends Appendable> T appendToNoLine(@NotNull T out, boolean withPrefixes, int maxBlankLines, int maxTrailingBlankLines, int startLine, int endLine) throws IOException - Throws:
IOException
-
append
@NotNull public @NotNull LineAppendable append(@NotNull @NotNull LineAppendable lineAppendable, 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:
lineAppendable
- 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
-
removeLinesRaw
private int removeLinesRaw(int startLine, int endLine) Remove lines and return index from which line info must be recomputed- Parameters:
startLine
- start line index to removeendLine
- end line index to remove- Returns:
- index from which line info must be recomputed
-
recomputeLineInfo
void recomputeLineInfo(int startLine) -
removeLines
- Specified by:
removeLines
in interfaceLineAppendable
-
removeExtraBlankLines
public LineAppendable 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
-
setPrefixLength
public void setPrefixLength(int lineIndex, int prefixLength) 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 lineprefixLength
- new prefix length
-
createLineInfo
private LineInfo createLineInfo(int lineIndex, @NotNull @NotNull CharSequence prefix, @NotNull @NotNull CharSequence content) -
setLine
public void setLine(int lineIndex, @NotNull @NotNull CharSequence prefix, @NotNull @NotNull CharSequence content) 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 linecontent
- content text of the line
-
insertLine
public void insertLine(int lineIndex, @NotNull @NotNull CharSequence prefix, @NotNull @NotNull CharSequence content) 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 linecontent
- content text of the line
-
tailBlankLinesToRemove
int tailBlankLinesToRemove(int endLine, int maxTrailingBlankLines) -
getIndexedLineInfoProxy
@NotNull @NotNull LineAppendableImpl.IndexedLineInfoProxy getIndexedLineInfoProxy(int maxTrailingBlankLines, int startLine, int endLine) -
getIndexedLineProxy
@NotNull @NotNull LineAppendableImpl.IndexedLineProxy getIndexedLineProxy(int maxTrailingBlankLines, int startLine, int endLine, boolean withPrefixes) -
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 interfaceIterable<LineInfo>
- Specified by:
iterator
in interfaceLineAppendable
- Returns:
- iterator over lines
-
getLines
@NotNull public @NotNull 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 @NotNull 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
-