@Override public int intervalEnd() { RangeMarkerTree.RMNode node = myNode; if (node == null) { return -1; } return node.intervalEnd(); }
void invalidate(@NotNull final Object reason) { setValid(false); RangeMarkerTree.RMNode<RangeMarkerEx> node = myNode; if (node != null) { node.processAliveKeys( new Processor<RangeMarkerEx>() { @Override public boolean process(RangeMarkerEx markerEx) { myNode.getTree().beforeRemove(markerEx, reason); return true; } }); } }
@Override public int setIntervalEnd(int end) { if (end < 0) { LOG.error("Negative end: " + end); } return myNode.setIntervalEnd(end); }
@Override public int setIntervalStart(int start) { if (start < 0) { LOG.error("Negative start: " + start); } return myNode.setIntervalStart(start); }
@Override public void setGreedyToRight(final boolean greedy) { if (!isValid() || greedy == isGreedyToRight()) return; myNode .getTree() .changeData(this, getStartOffset(), getEndOffset(), isGreedyToLeft(), greedy, getLayer()); }
protected boolean unregisterInTree() { if (!isValid()) return false; IntervalTreeImpl tree = myNode.getTree(); tree.checkMax(true); boolean b = myDocument.removeRangeMarker(this); tree.checkMax(true); return b; }
@Override public int getStartOffset() { RangeMarkerTree.RMNode node = myNode; return node == null ? -1 : node.intervalStart() + node.computeDeltaUpToRoot(); }
@Override public boolean setValid(boolean value) { RangeMarkerTree.RMNode node = myNode; return node == null || node.setValid(value); }
@Override public boolean isValid() { RangeMarkerTree.RMNode node = myNode; return node != null && node.isValid(); }
@Override public boolean isGreedyToRight() { RangeMarkerTree.RMNode node = myNode; return node != null && node.isGreedyToRight(); }