public interface ISegments extends Iterable<Segment>
TextContainer.
To create an instance of this interface, use the method TextContainer.getSegments().| Modifier and Type | Method and Description |
|---|---|
void |
append(Segment segment)
Appends a segment at the end of this container.
|
void |
append(Segment segment,
boolean collapseIfPreviousEmpty)
Appends a segment at the end of this container.
|
void |
append(Segment segment,
String textBefore)
Appends a segment at the end of this container, with an optional non-segment part just before.
|
void |
append(Segment segment,
String textBefore,
boolean collapseIfPreviousEmpty)
Appends a segment at the end of this container, with an optional non-segment part just before.
|
void |
append(TextFragment fragment)
Appends a TextFragment as a segment at the end of this container.
|
void |
append(TextFragment fragment,
boolean collapseIfPreviousEmpty)
Appends a TextFragment as a segment at the end of this container.
|
List<Segment> |
asList()
Get all segments.
|
int |
count()
Gets the number of segments in this container.
|
int |
create(int start,
int end)
Creates a segment in this container.
|
int |
create(List<Range> ranges)
Helper method to create segments without empty segments.
|
int |
create(List<Range> ranges,
boolean allowEmptySegments)
Creates a set of segments in this container.
|
Segment |
get(int index)
Gets the segment for a given segment index.
|
Segment |
get(String id)
Gets the segment for a given identifier.
|
AlignmentStatus |
getAlignmentStatus()
Returns the
AlignmentStatus for these segments. |
TextFragment |
getFirstContent()
Gets the content of the first segment of this container.
|
int |
getIndex(String segId)
Gets the segment index for a given segment id.
|
Segment |
getLast()
Gets the last
Segment of the container. |
TextFragment |
getLastContent()
Gets the content of last segment of this container.
|
int |
getPartIndex(int segIndex)
Gets the part index for a given segment index.
|
List<Range> |
getRanges()
Gets the list of the boundaries for the current segments in this container.
|
void |
insert(int index,
Segment seg)
Inserts a given segment at the specified position.
|
Iterator<Segment> |
iterator()
Gets an iterator for the segments of this container.
|
void |
joinAll()
Merges back together all segments of this TextContainer object, and clear the
list of segments.
|
void |
joinAll(List<Range> ranges)
Merges back together all segments of this TextContainer object, and clear the
list of segments.
|
int |
joinWithNext(int segmentIndex)
Joins to a given segment all the parts between that segment and the next, as well as
the next segment.
|
void |
set(int index,
Segment seg)
Sets a new segment at a given segment index.
|
void |
setAlignmentStatus(AlignmentStatus alignmentStatus)
Sets the
AlignmentStatus for these segments. |
void |
swap(int segIndex1,
int segIndex2)
Swaps two segments in this container.
|
forEach, spliteratorIterator<Segment> iterator()
iterator() for accessing both segments and non-segments parts.List<Segment> asList()
void swap(int segIndex1,
int segIndex2)
For example, if you have a container "[segment1] [segment2]" and call
swap(0,1) the resulting container becomes: "[segment2] [segment1]".
Note that the segments identifiers stay with their segment.
segIndex1 - the segment index of the first segment to swap.segIndex2 - the segment index of the second segment to swap.void append(Segment segment, boolean collapseIfPreviousEmpty)
segment - the segment to append.collapseIfPreviousEmpty - true to collapse the new segment if the last part of the container
is an empty segment.void append(Segment segment, String textBefore, boolean collapseIfPreviousEmpty)
If collapseIfPreviousEmpty is true and collapseIfPreviousEmpty is empty or null, and if the last part of the container is an empty segment, this new segment replaces the last one (including its id, and the new id is validated). Otherwise the new segment is appended to the content as a new segment part and its id is validated.
segment - the segment to append.textBefore - the text of the non-segment part before the segment (can be null).collapseIfPreviousEmpty - true to collapse the new segment if the last part of the container
is an empty segment (that is if textBefore is also empty or null).void append(TextFragment fragment, boolean collapseIfPreviousEmpty)
If collapseIfPreviousEmpty is true and if the last part of the container is an empty segment, this new segment replaces the last one. Otherwise the new segment is appended to the content as a new segment part. In all case the id of the new segment is set automatically.
fragment - the fragment to append as a segment.collapseIfPreviousEmpty - true to collapse the new segment if the last part of the container
is an empty segment.void append(Segment segment)
This call is the same as calling append(Segment, boolean) with collapseIfPreviousEmpty
set to true.
segment - the segment to append.void append(Segment segment, String textBefore)
This call is the same as calling append(Segment, String, boolean) with
collapseIfPreviousEmpty set to true.
segment - the segment to append.textBefore - the text of the non-segment part before the segment (can be null).void append(TextFragment fragment)
This call is the same as calling append(TextFragment, boolean) with
collapseIfPreviousEmpty set to true.
fragment - the fragment to append as a segment.void set(int index,
Segment seg)
If the new segment's id exists already in the container, it is replaced by a valid id.
index - the segment index position.seg - the new segment.void insert(int index,
Segment seg)
If the segment to insert has no id or an id that is already used in the text container, the id is automatically changed to a new valid id.
index - the segment index position. If the given position is the same
as the number of segments in the container, the call is the same as append(Segment, boolean)
with collapseIfPreviousEmpty set to true.seg - the segment to insert.IndexOutOfBoundsException - if the index is out of bounds.int create(List<Range> ranges, boolean allowEmptySegments)
TextContainer.getCodedText()
to get the coded text to use as the base for the segment boundaries.
If the content is already segmented, it is automatically un-segmented before the new
segmentation is applied.ranges - the ranges of the segments to create. The ranges must be ordered from the lesser
position to the higher one (i.e. from left to right). If this parameter is empty or null, no
modification is done.allowEmptySegments - true to allow empty segments to be created, false to skip them.int create(List<Range> ranges)
create(List, boolean) with false.ranges - the ranges of the segments to create.create(List, boolean)int create(int start,
int end)
TextContainer.getCodedText()
to get the coded text to use as the base for the segment boundaries.
If the content is already segmented, it is automatically un-segmented before the new
segmentation is applied.
If start and end position are the same, no segment is created for those boundaries.
For example:
start - the start of the segment.end - the position just after the last character of the the segment.int count()
TextContainer.count()TextFragment getFirstContent()
TextContainer.getFirstContent(),
getLastContent(),
TextContainer.getLastContent()TextFragment getLastContent()
getLastContent(),
TextContainer.getFirstContent(),
TextContainer.getFirstContent()Segment getLast()
Segment of the container.Segment get(String id)
id - the identifier of the segment to retrieve.Segment get(int index)
index - the index of the segment to retrieve. The first
segment has the index 0, the second has the index 1, etc.
Note that the index value used here is not necessarily the same index as for a part.
That is: getSegment(0) returns the same segment as getPart(0) only if
the first part of the container is a segment.Use get(String) to retrieve by segment identifier.
IndexOutOfBoundsException - if the index is out of bounds.get(String),
#see {@link #iterator()}void joinAll()
joinAll(List)void joinAll(List<Range> ranges)
ranges - a list of Ranges where to save the segments ranges, use null to
not save the ranges.List<Range> getRanges()
int joinWithNext(int segmentIndex)
For example for the content: " [seg1] [seg2] ", the call joinWithNext(0) will give the result: " [seg1 seg2] ". And the call joinWithNext(1) will give the result: " [seg1] [seg2] " (no change because there is no segment after the segment 1.
segmentIndex - index of the segment (not the part) where to append the next segment.int getPartIndex(int segIndex)
For example in the container "[segment1] [segment2] [segment3]" the segment index for "[segment2]" is 1 and its part index is 2 because there is one non-segment part before.
segIndex - the segment index to convert to part index.int getIndex(String segId)
segId - the id to search for.AlignmentStatus getAlignmentStatus()
AlignmentStatus for these segments.AlignmentStatusvoid setAlignmentStatus(AlignmentStatus alignmentStatus)
AlignmentStatus for these segments.alignmentStatus - the new AlignmentStatus value.Copyright © 2022. All rights reserved.