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 classNested classes/interfaces inherited from interface ISegmentBuilder
ISegmentBuilder.Options -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intstatic final int[]protected intprotected intprotected intstatic final intprotected final intprotected @NotNull int[]protected intprotected intprotected final SegmentStatsprotected final StringBuilderprotected final SegmentStatsFields inherited from interface ISegmentBuilder
F_DEFAULT, F_INCLUDE_ANCHORS, F_TRACK_FIRST256, O_INCLUDE_ANCHORS, O_TRACK_FIRST256 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidaddSeg(int startOffset, int endOffset) private voidaddText(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 voidprivate intprivate static int[]ensureCapacity(@NotNull int[] prev, int size) private voidensureCapacity(int size) @Nullable Rangeintintint@NotNull ObjectgetPart(int index) private @NotNull SeggetSeg(int index) Return iterator over segmentsprivate @Nullable SeggetSegOrNull(int index) (package private) @NotNull SeggetSegPart(int index) intgetSpan()Span for offsets of this listintintgetStats()getText()intintintintintintprotected Object[]handleOverlap(@NotNull Object[] parts) protected booleanbooleanbooleanbooleanisEmpty()booleanbooleaniterator()Return iterator over segment parts Range - BASE CharSequence - TEXTprivate @Nullable Segintlength()booleanbooleanintprotected Object[]optimizeText(@NotNull Object[] parts) private voidprocessParts(int segStart, int segEnd, boolean resolveOverlap, boolean nullNextRange, @NotNull Function<Object[], Object[]> transform) private voidsetSegEnd(int index, int endOffset) intsize()toString()@NotNull StringtoString(@NotNull CharSequence chars) @NotNull StringtoString(@NotNull CharSequence chars, @NotNull CharSequence rangePrefix, @NotNull CharSequence rangeSuffix, @NotNull Function<CharSequence, CharSequence> textMapper) @NotNull StringtoStringWithRanges(@NotNull CharSequence chars) @NotNull StringtoStringWithRangesVisibleWhitespace(@NotNull CharSequence chars) voidMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface 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 @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 @NotNull int[] prev, int size) -
ensureCapacity
private void ensureCapacity(int size) -
trimToSize
public void trimToSize() -
getStartOffset
public int getStartOffset()- Specified by:
getStartOffsetin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
needStartOffset
public boolean needStartOffset() -
getStartOffsetIfNeeded
public int getStartOffsetIfNeeded() -
getEndOffset
public int getEndOffset()- Specified by:
getEndOffsetin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
needEndOffset
public boolean needEndOffset() -
getEndOffsetIfNeeded
public int getEndOffsetIfNeeded() -
isEmpty
public boolean isEmpty()- Specified by:
isEmptyin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
isBaseSubSequenceRange
public boolean isBaseSubSequenceRange()- Specified by:
isBaseSubSequenceRangein interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getBaseSubSequenceRange
- Specified by:
getBaseSubSequenceRangein interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
haveOffsets
public boolean haveOffsets()- Specified by:
haveOffsetsin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
size
public int size()- Specified by:
sizein interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getText
- Specified by:
getTextin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
noAnchorsSize
public int noAnchorsSize()- Specified by:
noAnchorsSizein interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
computeLength
private int computeLength() -
length
public int length()- Specified by:
lengthin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getStats
-
isTrackTextFirst256
public boolean isTrackTextFirst256()- Specified by:
isTrackTextFirst256in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getTextLength
public int getTextLength()- Specified by:
getTextLengthin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getTextSegments
public int getTextSegments()- Specified by:
getTextSegmentsin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getTextSpaceLength
public int getTextSpaceLength()- Specified by:
getTextSpaceLengthin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getTextSpaceSegments
public int getTextSpaceSegments()- Specified by:
getTextSpaceSegmentsin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getTextFirst256Length
public int getTextFirst256Length()- Specified by:
getTextFirst256Lengthin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getTextFirst256Segments
public int getTextFirst256Segments()- Specified by:
getTextFirst256Segmentsin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
iterator
Description copied from interface:ISegmentBuilderReturn iterator over segment parts Range - BASE CharSequence - TEXT- Specified by:
iteratorin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>- Specified by:
iteratorin interfaceIterable<S extends SegmentBuilderBase<S>>- Returns:
- iterator over segment builder parts
-
getSegments
Description copied from interface:ISegmentBuilderReturn iterator over segments- Specified by:
getSegmentsin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>- Returns:
- iterator over segment builder segments
-
getOptions
public int getOptions()- Specified by:
getOptionsin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
isIncludeAnchors
public boolean isIncludeAnchors()- Specified by:
isIncludeAnchorsin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getSpan
public int getSpan()Span for offsets of this list- Specified by:
getSpanin 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:
appendAnchorin 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:
appendin 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:
appendin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>- Parameters:
startOffset- start offset in original sequenceendOffset- end offset in original sequence- Returns:
- this
-
append
- Specified by:
appendin 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:
toStringWithRangesVisibleWhitespacein interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
toStringWithRanges
- Specified by:
toStringWithRangesin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
toString
- Specified by:
toStringin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
toStringPrep
-
toString
-