@Override public AbstractDataSegment split(final int position) { // Calculate positions final int pos = position - getStart(); // Create new segment final BaseSegment suffix = new BaseSegment(this, _next, _data.substring(pos, _data.length())); // Change current segment _data = _data.substring(0, pos); // Insert new segment _next._prev = suffix; _next = suffix; return suffix; }
final BaseSegment s = new BaseSegment(prefix, suffix, d); prefix._next = s; suffix._prev = s; final BaseSegment s = new BaseSegment(prefix, suffix, d); prefix._next = s; suffix._prev = s;
final BaseSegment seg = new BaseSegment(prefix, suffix, s); prefix._next = seg; suffix._prev = seg;
private static AlignedString createBase(final String base) { final AlignedString d = new AlignedString(); d._first._next = d.new BaseSegment(d._first, d._last, base); d._last._prev = d._first._next; return d; }