if (seg._prev.isAnchor() && (((Anchor) seg._prev).getPosition() == position)) { return seg._prev;
start = oseg._start.getPosition() + pos; break; start = oseg._end.getPosition(); break; final ObliqueSegment oseg = (ObliqueSegment) startSeg; final int pos = i.getEnd() - oseg.getStart(); end = oseg._start.getPosition() + pos; end = oseg._start.getPosition() + pos; break; end = oseg._start.getPosition(); break;
if (seg instanceof ObliqueSegment) { final ObliqueSegment oseg = (ObliqueSegment) seg; final int ulend = oseg._end.getPosition(); final int ulstart = oseg._start.getPosition(); if ((ulstart <= i.getEnd()) && (i.getEnd() < ulend)) {
@Override public AbstractDataSegment split(final int position) { // Calculate positions and get anchor final int pos = position - getStart(); final Anchor splitAnchor = _underlying.getAnchor(_start.getPosition() + pos); // Create new segment final ObliqueSegment suffix = new ObliqueSegment(this, _next, splitAnchor, _end); // Change current segment _end = splitAnchor; // Insert new segment _next._prev = suffix; _next = suffix; return suffix; }