@Override public void endTree(Node left, Node right) { if (intersects(left, right)) { super.endTree(left, right); } tracker.endTree(left, right); }
@Override public boolean tree(Node left, Node right) { tracker.tree(left, right); if (intersects(left, right)) { return super.tree(left, right); } return false; }
private boolean intersects(Bounded left, Bounded right) { return intersects(left, tracker.currentLeftMetadataId()) || intersects(right, tracker.currentRightMetadataId()); }