/** * Asserts that all siblings and children of sp are well ordered * @param sourceFragment * @param minOffset TODO * @param maxOffset TODO * @return number of checked {@link SourcePosition} nodes */ private int assertSourcePositionTreeIsCorrectlyOrder(ElementSourceFragment sourceFragment, int minOffset, int maxOffset) { int nr = 0; int pos = minOffset; while (sourceFragment != null) { nr++; assertTrue("min(" + pos + ") <= fragment.start(" + sourceFragment.getStart() + ")", pos <= sourceFragment.getStart()); assertTrue("fragment.start(" + sourceFragment.getStart() + ") <= fragment.end(" + sourceFragment.getEnd() + ")", sourceFragment.getStart() <= sourceFragment.getEnd()); pos = sourceFragment.getEnd(); nr += assertSourcePositionTreeIsCorrectlyOrder(sourceFragment.getFirstChild(), sourceFragment.getStart(), sourceFragment.getEnd()); sourceFragment = sourceFragment.getNextSibling(); } assertTrue("lastFragment.end(" + pos + ") <= max(" + maxOffset + ")", pos <= maxOffset); return nr; }