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 classes/interfaces inherited from interface com.vladsch.flexmark.util.sequence.builder.ISegmentBuilder
ISegmentBuilder.Options
-
-
Field Summary
Fields Modifier and Type Field Description protected intanchorsSizestatic int[]EMPTY_PARTSprotected intendOffsetprotected intimmutableOffsetprotected intlengthstatic intMIN_PART_CAPACITYprotected intoptionsprotected @org.jetbrains.annotations.NotNull int[]partsprotected intpartsSizeprotected intstartOffsetprotected SegmentStatsstatsprotected StringBuildertextprotected SegmentStatstextStats-
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 protectedSegmentBuilderBase()protectedSegmentBuilderBase(int options)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Sappend(char c)Sappend(char c, int repeat)Sappend(int startOffset, int endOffset)append range in original sequence coordinates, no checking is done other than overlap with tail range fastSappend(@NotNull Range range)append range in original sequence coordinates, no checking is done other than overlap with tail range fastSappend(@NotNull CharSequence text)SappendAnchor(int offset)append anchor in original sequence coordinates, no checking is done other than overlap with tail range fast@Nullable RangegetBaseSubSequenceRange()intgetEndOffset()intgetEndOffsetIfNeeded()intgetOptions()@NotNull ObjectgetPart(int index)@NotNull Iterable<Seg>getSegments()Return iterator over segmentsintgetSpan()Span for offsets of this listintgetStartOffset()intgetStartOffsetIfNeeded()SegmentStatsgetStats()CharSequencegetText()intgetTextFirst256Length()intgetTextFirst256Segments()intgetTextLength()intgetTextSegments()intgetTextSpaceLength()intgetTextSpaceSegments()protected Object[]handleOverlap(@NotNull Object[] parts)protected booleanhaveDanglingText()booleanhaveOffsets()booleanisBaseSubSequenceRange()booleanisEmpty()booleanisIncludeAnchors()booleanisTrackTextFirst256()@NotNull Iterator<Object>iterator()Return iterator over segment parts Range - BASE CharSequence - TEXTintlength()booleanneedEndOffset()booleanneedStartOffset()intnoAnchorsSize()protected Object[]optimizeText(@NotNull Object[] parts)intsize()StringtoString()@NotNull StringtoString(@NotNull CharSequence chars)@NotNull StringtoString(@NotNull CharSequence chars, @NotNull CharSequence rangePrefix, @NotNull CharSequence rangeSuffix, @NotNull Function<CharSequence,CharSequence> textMapper)StringtoStringPrep()@NotNull StringtoStringWithRanges(@NotNull CharSequence chars)@NotNull StringtoStringWithRangesVisibleWhitespace(@NotNull CharSequence chars)voidtrimToSize()-
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 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 @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
protected final SegmentStats stats
-
textStats
protected final SegmentStats textStats
-
options
protected final int options
-
text
protected final StringBuilder text
-
immutableOffset
protected int immutableOffset
-
-
Method Detail
-
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
@Nullable public @Nullable Range 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
public CharSequence getText()
- Specified by:
getTextin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
noAnchorsSize
public int noAnchorsSize()
- Specified by:
noAnchorsSizein interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
length
public int length()
- Specified by:
lengthin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
getStats
public SegmentStats 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
@NotNull public @NotNull Iterator<Object> 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
@NotNull public @NotNull Iterable<Seg> 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
-
getPart
@NotNull public @NotNull Object getPart(int index)
-
haveDanglingText
protected boolean haveDanglingText()
-
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:
appendAnchorin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>- Parameters:
offset- offset in original sequence- Returns:
- this
-
append
@NotNull public S append(@NotNull @NotNull Range range)
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
@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:
appendin 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 @NotNull CharSequence text)
- Specified by:
appendin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
append
@NotNull public S append(char c)
-
append
@NotNull public S append(char c, int repeat)
-
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
@NotNull public @NotNull String toStringWithRanges(@NotNull @NotNull CharSequence chars)
- Specified by:
toStringWithRangesin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
toString
@NotNull public @NotNull String toString(@NotNull @NotNull CharSequence chars)
- Specified by:
toStringin interfaceISegmentBuilder<S extends SegmentBuilderBase<S>>
-
toStringPrep
public String toStringPrep()
-
-