Class SegmentBuilderBase<S extends SegmentBuilderBase<S>>
java.lang.Object
com.vladsch.flexmark.util.sequence.builder.SegmentBuilderBase<S>
- All Implemented Interfaces:
ISegmentBuilder<S>
,Iterable<Object>
- Direct Known Subclasses:
BasedSegmentBuilder
,PlainSegmentBuilder
public class SegmentBuilderBase<S extends SegmentBuilderBase<S>>
extends Object
implements ISegmentBuilder<S>
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static class
(package private) static class
(package private) static class
Nested classes/interfaces inherited from interface com.vladsch.flexmark.util.sequence.builder.ISegmentBuilder
ISegmentBuilder.Options
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected int
static final int[]
protected int
protected int
protected int
static final int
protected final int
protected @org.jetbrains.annotations.NotNull int[]
protected int
protected int
protected final SegmentStats
protected final StringBuilder
protected final SegmentStats
Fields inherited from interface com.vladsch.flexmark.util.sequence.builder.ISegmentBuilder
F_DEFAULT, F_INCLUDE_ANCHORS, F_TRACK_FIRST256, O_INCLUDE_ANCHORS, O_TRACK_FIRST256
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
addSeg
(int startOffset, int endOffset) private void
addText
(CharSequence optText) append
(char c) append
(char c, int repeat) append
(int startOffset, int endOffset) append range in original sequence coordinates, no checking is done other than overlap with tail range fastappend range in original sequence coordinates, no checking is done other than overlap with tail range fastappend
(@NotNull CharSequence text) appendAnchor
(int offset) append anchor in original sequence coordinates, no checking is done other than overlap with tail range fastprivate void
private int
private static int[]
ensureCapacity
(@org.jetbrains.annotations.NotNull int[] prev, int size) private void
ensureCapacity
(int size) @Nullable Range
int
int
int
@NotNull Object
getPart
(int index) private @NotNull Seg
getSeg
(int index) Return iterator over segmentsprivate @Nullable Seg
getSegOrNull
(int index) (package private) @NotNull Seg
getSegPart
(int index) int
getSpan()
Span for offsets of this listint
int
getStats()
getText()
int
int
int
int
int
int
protected Object[]
handleOverlap
(@NotNull Object[] parts) protected boolean
boolean
boolean
boolean
isEmpty()
boolean
boolean
iterator()
Return iterator over segment parts Range - BASE CharSequence - TEXTprivate @Nullable Seg
int
length()
boolean
boolean
int
protected Object[]
optimizeText
(@NotNull Object[] parts) private void
processParts
(int segStart, int segEnd, boolean resolveOverlap, boolean nullNextRange, @NotNull Function<Object[], Object[]> transform) private void
setSegEnd
(int index, int endOffset) int
size()
toString()
@NotNull String
toString
(@NotNull CharSequence chars) @NotNull String
toString
(@NotNull CharSequence chars, @NotNull CharSequence rangePrefix, @NotNull CharSequence rangeSuffix, @NotNull Function<CharSequence, CharSequence> textMapper) @NotNull String
toStringWithRanges
(@NotNull CharSequence chars) @NotNull String
toStringWithRangesVisibleWhitespace
(@NotNull CharSequence chars) void
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
-
Field Details
-
MIN_PART_CAPACITY
public static final int MIN_PART_CAPACITY- See Also:
-
EMPTY_PARTS
public static final int[] EMPTY_PARTS -
parts
@NotNull protected @org.jetbrains.annotations.NotNull int[] parts -
partsSize
protected int partsSize -
anchorsSize
protected int anchorsSize -
startOffset
protected int startOffset -
endOffset
protected int endOffset -
length
protected int length -
stats
-
textStats
-
options
protected final int options -
text
-
immutableOffset
protected int immutableOffset
-
-
Constructor Details
-
SegmentBuilderBase
protected SegmentBuilderBase() -
SegmentBuilderBase
protected SegmentBuilderBase(int options)
-
-
Method Details
-
ensureCapacity
private static int[] ensureCapacity(@NotNull @org.jetbrains.annotations.NotNull int[] prev, int size) -
ensureCapacity
private void ensureCapacity(int size) -
trimToSize
public void trimToSize() -
getStartOffset
public int getStartOffset()- Specified by:
getStartOffset
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
needStartOffset
public boolean needStartOffset() -
getStartOffsetIfNeeded
public int getStartOffsetIfNeeded() -
getEndOffset
public int getEndOffset()- Specified by:
getEndOffset
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
needEndOffset
public boolean needEndOffset() -
getEndOffsetIfNeeded
public int getEndOffsetIfNeeded() -
isEmpty
public boolean isEmpty()- Specified by:
isEmpty
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
isBaseSubSequenceRange
public boolean isBaseSubSequenceRange()- Specified by:
isBaseSubSequenceRange
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getBaseSubSequenceRange
- Specified by:
getBaseSubSequenceRange
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
haveOffsets
public boolean haveOffsets()- Specified by:
haveOffsets
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
size
public int size()- Specified by:
size
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getText
- Specified by:
getText
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
noAnchorsSize
public int noAnchorsSize()- Specified by:
noAnchorsSize
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
computeLength
private int computeLength() -
length
public int length()- Specified by:
length
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getStats
-
isTrackTextFirst256
public boolean isTrackTextFirst256()- Specified by:
isTrackTextFirst256
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getTextLength
public int getTextLength()- Specified by:
getTextLength
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getTextSegments
public int getTextSegments()- Specified by:
getTextSegments
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getTextSpaceLength
public int getTextSpaceLength()- Specified by:
getTextSpaceLength
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getTextSpaceSegments
public int getTextSpaceSegments()- Specified by:
getTextSpaceSegments
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getTextFirst256Length
public int getTextFirst256Length()- Specified by:
getTextFirst256Length
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getTextFirst256Segments
public int getTextFirst256Segments()- Specified by:
getTextFirst256Segments
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
iterator
Description copied from interface:ISegmentBuilder
Return iterator over segment parts Range - BASE CharSequence - TEXT- Specified by:
iterator
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
- Specified by:
iterator
in interfaceIterable<S extends SegmentBuilderBase<S>>
- Returns:
- iterator over segment builder parts
-
getSegments
Description copied from interface:ISegmentBuilder
Return iterator over segments- Specified by:
getSegments
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
- Returns:
- iterator over segment builder segments
-
getOptions
public int getOptions()- Specified by:
getOptions
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
isIncludeAnchors
public boolean isIncludeAnchors()- Specified by:
isIncludeAnchors
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getSpan
public int getSpan()Span for offsets of this list- Specified by:
getSpan
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
- Returns:
- -ve if no information in the list, or span of offsets
-
getSegOrNull
-
getSeg
-
getPart
-
getSegPart
-
setSegEnd
private void setSegEnd(int index, int endOffset) -
addSeg
private void addSeg(int startOffset, int endOffset) -
lastSegOrNull
-
haveDanglingText
protected boolean haveDanglingText() -
optimizeText
-
handleOverlap
-
processParts
-
commitText
private void commitText() -
addText
-
appendAnchor
append anchor in original sequence coordinates, no checking is done other than overlap with tail range fast- Specified by:
appendAnchor
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
- Parameters:
offset
- offset in original sequence- Returns:
- this
-
append
append range in original sequence coordinates, no checking is done other than overlap with tail range fast- Specified by:
append
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
- Parameters:
range
- range in original sequence- Returns:
- this
-
append
append range in original sequence coordinates, no checking is done other than overlap with tail range fast- Specified by:
append
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
- Parameters:
startOffset
- start offset in original sequenceendOffset
- end offset in original sequence- Returns:
- this
-
append
- Specified by:
append
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
append
-
append
-
toString
@NotNull public @NotNull String toString(@NotNull @NotNull CharSequence chars, @NotNull @NotNull CharSequence rangePrefix, @NotNull @NotNull CharSequence rangeSuffix, @NotNull @NotNull Function<CharSequence, CharSequence> textMapper) -
toStringWithRangesVisibleWhitespace
@NotNull public @NotNull String toStringWithRangesVisibleWhitespace(@NotNull @NotNull CharSequence chars) - Specified by:
toStringWithRangesVisibleWhitespace
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
toStringWithRanges
- Specified by:
toStringWithRanges
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
toString
- Specified by:
toString
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
toStringPrep
-
toString
-