public class LengthGoalBreakIterator
extends java.text.BreakIterator
BreakIterator
to skip past breaks that would result in passages that are too
short. It's still possible to get a short passage but only at the very end of the input text.
Important: This is not a general purpose BreakIterator
; it's only designed to work in a way
compatible with the UnifiedHighlighter
. Some assumptions are checked with Java assertions.
Modifier and Type | Field and Description |
---|---|
private java.text.BreakIterator |
baseIter |
private boolean |
isMinimumLength |
private int |
lengthGoal |
Modifier | Constructor and Description |
---|---|
private |
LengthGoalBreakIterator(java.text.BreakIterator baseIter,
int lengthGoal,
boolean isMinimumLength) |
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
clone() |
static LengthGoalBreakIterator |
createClosestToLength(java.text.BreakIterator baseIter,
int targetLength)
Breaks will be on average
targetLength apart; the closest break to this target (before or after)
is chosen. |
static LengthGoalBreakIterator |
createMinLength(java.text.BreakIterator baseIter,
int minLength)
Breaks will be at least
minLength apart (to the extent possible). |
int |
current() |
int |
first() |
int |
following(int followingIdx) |
java.text.CharacterIterator |
getText() |
boolean |
isBoundary(int offset) |
int |
last() |
private int |
moveToBreak(int idx) |
int |
next() |
int |
next(int n) |
int |
preceding(int offset) |
int |
previous() |
void |
setText(java.text.CharacterIterator newText) |
void |
setText(java.lang.String newText) |
java.lang.String |
toString() |
private final java.text.BreakIterator baseIter
private final int lengthGoal
private final boolean isMinimumLength
private LengthGoalBreakIterator(java.text.BreakIterator baseIter, int lengthGoal, boolean isMinimumLength)
public static LengthGoalBreakIterator createMinLength(java.text.BreakIterator baseIter, int minLength)
minLength
apart (to the extent possible).public static LengthGoalBreakIterator createClosestToLength(java.text.BreakIterator baseIter, int targetLength)
targetLength
apart; the closest break to this target (before or after)
is chosen.public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.Object clone()
clone
in class java.text.BreakIterator
public java.text.CharacterIterator getText()
getText
in class java.text.BreakIterator
public void setText(java.lang.String newText)
setText
in class java.text.BreakIterator
public void setText(java.text.CharacterIterator newText)
setText
in class java.text.BreakIterator
public int current()
current
in class java.text.BreakIterator
public int first()
first
in class java.text.BreakIterator
public int last()
last
in class java.text.BreakIterator
public int next(int n)
next
in class java.text.BreakIterator
public int next()
next
in class java.text.BreakIterator
public int previous()
previous
in class java.text.BreakIterator
public int following(int followingIdx)
following
in class java.text.BreakIterator
private int moveToBreak(int idx)
public int preceding(int offset)
preceding
in class java.text.BreakIterator
public boolean isBoundary(int offset)
isBoundary
in class java.text.BreakIterator