@Override public Range getIndexRange(final int startOffset, final int endOffset) { // we assume that start/end is within our range int start = MIN_VALUE; int end = MIN_VALUE; for (int i = 0; i < baseOffsets.length; i++) { if (baseOffsets[i] == startOffset) { start = i; } if (baseOffsets[i] == endOffset) { end = i; } if (start != MIN_VALUE && end != MIN_VALUE) break; } if (start < 0) start = 0; if (end < start) end = start; if (start > end) start = end; return Range.of(start, end); }
@Override public Range getIndexRange(final int startOffset, final int endOffset) { // we assume that start/end is within our range int baseOffset = getStartOffset(); if (startOffset > getEndOffset() || endOffset < baseOffset) { throw new IllegalArgumentException("getIndexRange(" + startOffset + ", " + endOffset + ") not in range [" + baseOffset + ", " + getEndOffset() + "]"); } return Range.of(startOffset - baseOffset, endOffset - baseOffset); }
@Override public Range getIndexRange(final int startOffset, final int endOffset) { // we assume that start/end is within our range int start = MIN_VALUE; int end = MIN_VALUE; for (int i = 0; i < baseOffsets.length; i++) { if (baseOffsets[i] == startOffset) { start = i; } if (baseOffsets[i] == endOffset) { end = i; } if (start != MIN_VALUE && end != MIN_VALUE) break; } if (start < 0) start = 0; if (end < start) end = start; if (start > end) start = end; return Range.of(start, end); }
@Override public Range getIndexRange(final int startOffset, final int endOffset) { // we assume that start/end is within our range int baseOffset = getStartOffset(); if (startOffset > getEndOffset() || endOffset < baseOffset) { throw new IllegalArgumentException("getIndexRange(" + startOffset + ", " + endOffset + ") not in range [" + baseOffset + ", " + getEndOffset() + "]"); } return Range.of(startOffset - baseOffset, endOffset - baseOffset); }