Class SegmentBuilderBase<S extends SegmentBuilderBase<S>>
- java.lang.Object
-
- com.vladsch.flexmark.util.sequence.builder.SegmentBuilderBase<S>
-
- All Implemented Interfaces:
ISegmentBuilder<S>
,java.lang.Iterable<java.lang.Object>
- Direct Known Subclasses:
BasedSegmentBuilder
,PlainSegmentBuilder
public class SegmentBuilderBase<S extends SegmentBuilderBase<S>> extends java.lang.Object implements ISegmentBuilder<S>
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.vladsch.flexmark.util.sequence.builder.ISegmentBuilder
ISegmentBuilder.Options
-
-
Field Summary
Fields Modifier and Type Field Description protected int
anchorsSize
static int[]
EMPTY_PARTS
protected int
endOffset
protected int
immutableOffset
protected int
length
static int
MIN_PART_CAPACITY
protected int
options
protected int[]
parts
protected int
partsSize
protected int
startOffset
protected SegmentStats
stats
protected java.lang.StringBuilder
text
protected SegmentStats
textStats
-
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 Modifier Constructor Description protected
SegmentBuilderBase()
protected
SegmentBuilderBase(int options)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description S
append(char c)
S
append(char c, int repeat)
S
append(int startOffset, int endOffset)
append range in original sequence coordinates, no checking is done other than overlap with tail range fastS
append(Range range)
append range in original sequence coordinates, no checking is done other than overlap with tail range fastS
append(java.lang.CharSequence text)
S
appendAnchor(int offset)
append anchor in original sequence coordinates, no checking is done other than overlap with tail range fastRange
getBaseSubSequenceRange()
int
getEndOffset()
int
getEndOffsetIfNeeded()
int
getOptions()
java.lang.Object
getPart(int index)
java.lang.Iterable<Seg>
getSegments()
Return iterator over segmentsint
getSpan()
Span for offsets of this listint
getStartOffset()
int
getStartOffsetIfNeeded()
SegmentStats
getStats()
java.lang.CharSequence
getText()
int
getTextFirst256Length()
int
getTextFirst256Segments()
int
getTextLength()
int
getTextSegments()
int
getTextSpaceLength()
int
getTextSpaceSegments()
protected java.lang.Object[]
handleOverlap(java.lang.Object[] parts)
protected boolean
haveDanglingText()
boolean
haveOffsets()
boolean
isBaseSubSequenceRange()
boolean
isEmpty()
boolean
isIncludeAnchors()
boolean
isTrackTextFirst256()
java.util.Iterator<java.lang.Object>
iterator()
Return iterator over segment parts Range - BASE CharSequence - TEXTint
length()
boolean
needEndOffset()
boolean
needStartOffset()
int
noAnchorsSize()
protected java.lang.Object[]
optimizeText(java.lang.Object[] parts)
int
size()
java.lang.String
toString()
java.lang.String
toString(java.lang.CharSequence chars)
java.lang.String
toString(java.lang.CharSequence chars, java.lang.CharSequence rangePrefix, java.lang.CharSequence rangeSuffix, java.util.function.Function<java.lang.CharSequence,java.lang.CharSequence> textMapper)
java.lang.String
toStringPrep()
java.lang.String
toStringWithRanges(java.lang.CharSequence chars)
java.lang.String
toStringWithRangesVisibleWhitespace(java.lang.CharSequence chars)
void
trimToSize()
-
-
-
Field Detail
-
MIN_PART_CAPACITY
public static final int MIN_PART_CAPACITY
- See Also:
- Constant Field Values
-
EMPTY_PARTS
public static final int[] EMPTY_PARTS
-
parts
@NotNull protected int[] parts
-
partsSize
protected int partsSize
-
anchorsSize
protected int anchorsSize
-
startOffset
protected int startOffset
-
endOffset
protected int endOffset
-
length
protected int length
-
stats
protected final SegmentStats stats
-
textStats
protected final SegmentStats textStats
-
options
protected final int options
-
text
protected final java.lang.StringBuilder text
-
immutableOffset
protected int immutableOffset
-
-
Method Detail
-
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
@Nullable public Range 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
public java.lang.CharSequence getText()
- Specified by:
getText
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
noAnchorsSize
public int noAnchorsSize()
- Specified by:
noAnchorsSize
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
length
public int length()
- Specified by:
length
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getStats
public SegmentStats 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
@NotNull public java.util.Iterator<java.lang.Object> 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 interfacejava.lang.Iterable<S extends SegmentBuilderBase<S>>
- Returns:
- iterator over segment builder parts
-
getSegments
@NotNull public java.lang.Iterable<Seg> 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
-
getPart
@NotNull public java.lang.Object getPart(int index)
-
haveDanglingText
protected boolean haveDanglingText()
-
optimizeText
protected java.lang.Object[] optimizeText(@NotNull java.lang.Object[] parts)
-
handleOverlap
protected java.lang.Object[] handleOverlap(@NotNull java.lang.Object[] parts)
-
appendAnchor
@NotNull public S appendAnchor(int offset)
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
@NotNull public S append(@NotNull Range range)
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
@NotNull public S append(int startOffset, int endOffset)
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
@NotNull public S append(@NotNull java.lang.CharSequence text)
- Specified by:
append
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
append
@NotNull public S append(char c)
-
append
@NotNull public S append(char c, int repeat)
-
toString
@NotNull public java.lang.String toString(@NotNull java.lang.CharSequence chars, @NotNull java.lang.CharSequence rangePrefix, @NotNull java.lang.CharSequence rangeSuffix, @NotNull java.util.function.Function<java.lang.CharSequence,java.lang.CharSequence> textMapper)
-
toStringWithRangesVisibleWhitespace
@NotNull public java.lang.String toStringWithRangesVisibleWhitespace(@NotNull java.lang.CharSequence chars)
- Specified by:
toStringWithRangesVisibleWhitespace
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
toStringWithRanges
@NotNull public java.lang.String toStringWithRanges(@NotNull java.lang.CharSequence chars)
- Specified by:
toStringWithRanges
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
toString
@NotNull public java.lang.String toString(@NotNull java.lang.CharSequence chars)
- Specified by:
toString
in interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
toStringPrep
public java.lang.String toStringPrep()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-