Class SequenceBuilder
- java.lang.Object
-
- com.vladsch.flexmark.util.sequence.builder.SequenceBuilder
-
- All Implemented Interfaces:
ISequenceBuilder<SequenceBuilder,BasedSequence>
,java.lang.Appendable
public class SequenceBuilder extends java.lang.Object implements ISequenceBuilder<SequenceBuilder,BasedSequence>
A Builder for Segmented BasedSequences
-
-
Field Summary
Fields Modifier and Type Field Description private @NotNull BasedSequence
altBase
private @NotNull BasedSequence
baseSeq
private @NotNull java.util.HashMap<BasedSequence,java.lang.Boolean>
equivalentBases
private @Nullable BasedSequence
resultSeq
private BasedSegmentBuilder
segments
-
Constructor Summary
Constructors Modifier Constructor Description private
SequenceBuilder(@NotNull BasedSequence base, int options, @Nullable SegmentOptimizer optimizer, @NotNull java.util.HashMap<BasedSequence,java.lang.Boolean> equivalentBases)
Construct a base sequence builder for given base sequence with specific options.private
SequenceBuilder(@NotNull BasedSequence base, @Nullable SegmentOptimizer optimizer)
Construct a base sequence builder for given base sequence with default options.private
SequenceBuilder(@NotNull BasedSequence base, @Nullable SegmentOptimizer optimizer, @NotNull java.util.HashMap<BasedSequence,java.lang.Boolean> equivalentBases)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description @NotNull SequenceBuilder
addByLength(int startOffset, int textLength)
@NotNull SequenceBuilder
addByOffsets(int startOffset, int endOffset)
@NotNull SequenceBuilder
addRange(@NotNull Range range)
@NotNull SequenceBuilder
append(char c)
@NotNull SequenceBuilder
append(char c, int count)
@NotNull SequenceBuilder
append(int startOffset, int endOffset)
@NotNull SequenceBuilder
append(@NotNull Range chars)
@NotNull SequenceBuilder
append(@Nullable java.lang.CharSequence chars, int startIndex, int endIndex)
char
charAt(int index)
static @NotNull SequenceBuilder
emptyBuilder(@NotNull BasedSequence base)
static @NotNull SequenceBuilder
emptyBuilder(@NotNull BasedSequence base, int options)
static @NotNull SequenceBuilder
emptyBuilder(@NotNull BasedSequence base, int options, @NotNull SegmentOptimizer optimizer)
static @NotNull SequenceBuilder
emptyBuilder(@NotNull BasedSequence base, @NotNull SegmentOptimizer optimizer)
@NotNull BasedSequence
getBaseSequence()
@NotNull SequenceBuilder
getBuilder()
@Nullable Range
getLastRangeOrNull()
@NotNull BasedSegmentBuilder
getSegmentBuilder()
@Nullable BasedSequence
getSingleBasedSequence()
NOTE: returns non-null value if the underlyingISegmentBuilder.getBaseSubSequenceRange()
returns non-null value(package private) boolean
isCommonBaseSequence(@NotNull BasedSequence chars)
int
length()
@NotNull BasedSequence
toSequence()
@NotNull BasedSequence
toSequence(@NotNull BasedSequence altSequence)
Construct sequence from this builder using another based sequence which is character identical to this builder's baseSeq@NotNull BasedSequence
toSequence(@NotNull BasedSequence altSequence, @Nullable CharPredicate trimStart, @Nullable CharPredicate ignoreCharDiff)
Construct sequence from this builder using another based sequence which is character identical to this builder's baseSeq@NotNull BasedSequence
toSequenceByIndex(@NotNull BasedSequence altSequence, @Nullable CharPredicate trimStart, @Nullable CharPredicate ignoreCharDiff)
Construct sequence from this builder using another based sequence which is character identical to this builder's baseSeq by length@NotNull java.lang.String
toString()
@NotNull java.lang.String
toStringNoAddedSpaces()
@NotNull java.lang.String
toStringWithRanges()
@NotNull java.lang.String
toStringWithRanges(boolean toVisibleWhiteSpace)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.vladsch.flexmark.util.sequence.builder.ISequenceBuilder
add, addAll, append, append, append, isEmpty, isNotEmpty
-
-
-
-
Field Detail
-
segments
private final BasedSegmentBuilder segments
-
baseSeq
@NotNull private final @NotNull BasedSequence baseSeq
-
altBase
@NotNull private final @NotNull BasedSequence altBase
-
equivalentBases
@NotNull private final @NotNull java.util.HashMap<BasedSequence,java.lang.Boolean> equivalentBases
-
resultSeq
@Nullable private @Nullable BasedSequence resultSeq
-
-
Constructor Detail
-
SequenceBuilder
private SequenceBuilder(@NotNull @NotNull BasedSequence base, @Nullable @Nullable SegmentOptimizer optimizer)
Construct a base sequence builder for given base sequence with default options.NOTE: the builder is always constructed for the base sequence of the base. ie. for the based sequence returned by
BasedSequence.getBaseSequence()
, so any subsequence from a base can be used as argument for the constructor- Parameters:
base
- base sequence for which to create a builderoptimizer
- optimizer for based segment builder, or defaultCharRecoveryOptimizer
-
SequenceBuilder
private SequenceBuilder(@NotNull @NotNull BasedSequence base, @Nullable @Nullable SegmentOptimizer optimizer, @NotNull @NotNull java.util.HashMap<BasedSequence,java.lang.Boolean> equivalentBases)
-
SequenceBuilder
private SequenceBuilder(@NotNull @NotNull BasedSequence base, int options, @Nullable @Nullable SegmentOptimizer optimizer, @NotNull @NotNull java.util.HashMap<BasedSequence,java.lang.Boolean> equivalentBases)
Construct a base sequence builder for given base sequence with specific options.NOTE: the builder is always constructed for the base sequence of the base. ie. for the based sequence returned by
BasedSequence.getBaseSequence()
, so any subsequence from a base can be used as argument for the constructor- Parameters:
base
- base sequence for which to create a builderoptions
- builder optionsoptimizer
- optimizer for based segment builder, or defaultCharRecoveryOptimizer
-
-
Method Detail
-
getBaseSequence
@NotNull public @NotNull BasedSequence getBaseSequence()
-
getSegmentBuilder
@NotNull public @NotNull BasedSegmentBuilder getSegmentBuilder()
-
getLastRangeOrNull
@Nullable public @Nullable Range getLastRangeOrNull()
-
getSingleBasedSequence
@Nullable public @Nullable BasedSequence getSingleBasedSequence()
Description copied from interface:ISequenceBuilder
NOTE: returns non-null value if the underlyingISegmentBuilder.getBaseSubSequenceRange()
returns non-null value- Specified by:
getSingleBasedSequence
in interfaceISequenceBuilder<SequenceBuilder,BasedSequence>
- Returns:
- sub-sequence of base representing the single segment or null if sequence not representable by a single subsequence
-
getBuilder
@NotNull public @NotNull SequenceBuilder getBuilder()
- Specified by:
getBuilder
in interfaceISequenceBuilder<SequenceBuilder,BasedSequence>
-
charAt
public char charAt(int index)
- Specified by:
charAt
in interfaceISequenceBuilder<SequenceBuilder,BasedSequence>
-
isCommonBaseSequence
boolean isCommonBaseSequence(@NotNull @NotNull BasedSequence chars)
-
append
@NotNull public @NotNull SequenceBuilder append(@Nullable @Nullable java.lang.CharSequence chars, int startIndex, int endIndex)
- Specified by:
append
in interfacejava.lang.Appendable
- Specified by:
append
in interfaceISequenceBuilder<SequenceBuilder,BasedSequence>
-
append
@NotNull public @NotNull SequenceBuilder append(char c)
- Specified by:
append
in interfacejava.lang.Appendable
- Specified by:
append
in interfaceISequenceBuilder<SequenceBuilder,BasedSequence>
-
append
@NotNull public @NotNull SequenceBuilder append(char c, int count)
- Specified by:
append
in interfaceISequenceBuilder<SequenceBuilder,BasedSequence>
-
append
@NotNull public @NotNull SequenceBuilder append(int startOffset, int endOffset)
-
append
@NotNull public @NotNull SequenceBuilder append(@NotNull @NotNull Range chars)
-
addRange
@NotNull public @NotNull SequenceBuilder addRange(@NotNull @NotNull Range range)
-
addByOffsets
@NotNull public @NotNull SequenceBuilder addByOffsets(int startOffset, int endOffset)
-
addByLength
@NotNull public @NotNull SequenceBuilder addByLength(int startOffset, int textLength)
-
toSequence
@NotNull public @NotNull BasedSequence toSequence()
- Specified by:
toSequence
in interfaceISequenceBuilder<SequenceBuilder,BasedSequence>
-
toSequence
@NotNull public @NotNull BasedSequence toSequence(@NotNull @NotNull BasedSequence altSequence)
Construct sequence from this builder using another based sequence which is character identical to this builder's baseSeq- Parameters:
altSequence
- based sequence which is character identical to this builder's baseSeq- Returns:
- builder with offsets mapped to altSequence
-
toSequence
@NotNull public @NotNull BasedSequence toSequence(@NotNull @NotNull BasedSequence altSequence, @Nullable @Nullable CharPredicate trimStart, @Nullable @Nullable CharPredicate ignoreCharDiff)
Construct sequence from this builder using another based sequence which is character identical to this builder's baseSeq- Parameters:
altSequence
- based sequence which is character identical to this builder's baseSeqtrimStart
- character set of characters to trimignoreCharDiff
- chars which should be treated as equivalent for verification purposes (Space, Tab, EOL, usually)- Returns:
- builder with offsets mapped to altSequence
-
toSequenceByIndex
@NotNull public @NotNull BasedSequence toSequenceByIndex(@NotNull @NotNull BasedSequence altSequence, @Nullable @Nullable CharPredicate trimStart, @Nullable @Nullable CharPredicate ignoreCharDiff)
Construct sequence from this builder using another based sequence which is character identical to this builder's baseSeq by length- Parameters:
altSequence
- based sequence which is character identical to this builder's baseSeqtrimStart
- character set of characters to trimignoreCharDiff
- chars which should be treated as equivalent for verification purposes (Space, Tab, EOL, usually)- Returns:
- builder with offsets mapped to altSequence
-
length
public int length()
- Specified by:
length
in interfaceISequenceBuilder<SequenceBuilder,BasedSequence>
-
toStringWithRanges
@NotNull public @NotNull java.lang.String toStringWithRanges()
-
toStringWithRanges
@NotNull public @NotNull java.lang.String toStringWithRanges(boolean toVisibleWhiteSpace)
-
toString
@NotNull public @NotNull java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
toStringNoAddedSpaces
@NotNull public @NotNull java.lang.String toStringNoAddedSpaces()
-
emptyBuilder
@NotNull public static @NotNull SequenceBuilder emptyBuilder(@NotNull @NotNull BasedSequence base)
-
emptyBuilder
@NotNull public static @NotNull SequenceBuilder emptyBuilder(@NotNull @NotNull BasedSequence base, @NotNull @NotNull SegmentOptimizer optimizer)
-
emptyBuilder
@NotNull public static @NotNull SequenceBuilder emptyBuilder(@NotNull @NotNull BasedSequence base, int options)
-
emptyBuilder
@NotNull public static @NotNull SequenceBuilder emptyBuilder(@NotNull @NotNull BasedSequence base, int options, @NotNull @NotNull SegmentOptimizer optimizer)
-
-