SegmentIterable.java
// © 2025 and later: Unicode, Inc. and others.
// License & terms of use: https://www.unicode.org/copyright.html
package com.ibm.icu.segmenter;
import com.ibm.icu.segmenter.Segments.IterationDirection;
import com.ibm.icu.text.BreakIterator;
import java.util.Iterator;
/**
* This {@code Iterable} exists to enable the creation of a {@code Spliterator} that in turn enables
* the creation of a lazy {@code Stream}.
*/
class SegmentIterable implements Iterable<Segment> {
private BreakIterator breakIter;
private final IterationDirection direction;
private int startIdx;
private final CharSequence source;
SegmentIterable(
BreakIterator breakIter,
IterationDirection direction,
int startIdx,
CharSequence source) {
this.breakIter = breakIter;
this.direction = direction;
this.startIdx = startIdx;
this.source = source;
}
@Override
public Iterator<Segment> iterator() {
return new SegmentIterator(breakIter, direction, startIdx, source);
}
}