Package org.apache.lucene.search.uhighlight

# Class LengthGoalBreakIterator

java.lang.Object
java.text.BreakIterator
org.apache.lucene.search.uhighlight.LengthGoalBreakIterator

All Implemented Interfaces:
  `Cloneable`

public class LengthGoalBreakIterator extends BreakIterator
Wraps another `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.

WARNING: This API is experimental and might change in incompatible ways in the next release.

## Field Summary

### Fields inherited from class java.text.BreakIterator

`DONE`

## Method Summary

Modifier and Type
Method
Description
`Object`
`clone()`
`static LengthGoalBreakIterator`
`createClosestToLength(BreakIterator baseIter, int targetLength, float fragmentAlignment)`
Breaks will be on average `targetLength` apart; the closest break to this target (before or after) is chosen.
`static LengthGoalBreakIterator`
`createMinLength(BreakIterator baseIter, int minLength, float fragmentAlignment)`
Breaks will be at least `minLength` apart (to the extent possible), while trying to position the match inside the fragment according to `fragmentAlignment`.
`int`
`current()`
`int`
`first()`
`int`
`following(int matchEndIndex)`
`CharacterIterator`
`getText()`
`boolean`
`isBoundary(int offset)`
`int`
`last()`
`int`
`next()`
`int`
`next(int n)`
`int`
`preceding(int matchStartIndex)`
`int`
`previous()`
`void`
`setText(String newText)`
`void`
`setText(CharacterIterator newText)`
`String`
`toString()`

### Methods inherited from class java.text.BreakIterator

`getAvailableLocales, getCharacterInstance, getCharacterInstance, getLineInstance, getLineInstance, getSentenceInstance, getSentenceInstance, getWordInstance, getWordInstance`

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Method Details

### createMinLength

public static LengthGoalBreakIterator createMinLength(BreakIterator baseIter, int minLength, float fragmentAlignment)
Breaks will be at least `minLength` apart (to the extent possible), while trying to position the match inside the fragment according to `fragmentAlignment`.

### createClosestToLength

public static LengthGoalBreakIterator createClosestToLength(BreakIterator baseIter, int targetLength, float fragmentAlignment)
Breaks will be on average `targetLength` apart; the closest break to this target (before or after) is chosen. The match will be positioned according to `fragmentAlignment` as much as possible.

### toString

public String toString()

Overrides:
  `toString` in class `Object`

### clone

public Object clone()

Overrides:
  `clone` in class `BreakIterator`

### getText

public CharacterIterator getText()

Specified by:
  `getText` in class `BreakIterator`

### setText

public void setText(String newText)

Overrides:
  `setText` in class `BreakIterator`

### setText

public void setText(CharacterIterator newText)

Specified by:
  `setText` in class `BreakIterator`

### current

public int current()

Specified by:
  `current` in class `BreakIterator`

### first

public int first()

Specified by:
  `first` in class `BreakIterator`

### last

public int last()

Specified by:
  `last` in class `BreakIterator`

### next

public int next(int n)

Specified by:
  `next` in class `BreakIterator`

### next

public int next()

Specified by:
  `next` in class `BreakIterator`

### previous

public int previous()

Specified by:
  `previous` in class `BreakIterator`

### following

public int following(int matchEndIndex)

Specified by:
  `following` in class `BreakIterator`

### preceding

public int preceding(int matchStartIndex)

Overrides:
  `preceding` in class `BreakIterator`

### isBoundary

public boolean isBoundary(int offset)

Overrides:
  `isBoundary` in class `BreakIterator`