private static <I, D> void markAndPropagate(AbstractBaseDTNode<I, D> node, D label) {
        AbstractBaseDTNode<I, D> curr = node;

        while (curr != null && curr.getSplitData() != null) {
            if (!curr.getSplitData().mark(label)) {
                return;
            }
            curr = curr.getParent();
        }
    }
private static < I , D > void markAndPropagate ( AbstractBaseDTNode < I , D > node , D label ) { AbstractBaseDTNode < I , D > curr = node ; while ( curr != null && curr . getSplitData ( ) != null ) { if ( ! curr . getSplitData ( ) . mark ( label ) ) { return ; } curr = curr . getParent ( ) ; } }
Marks a node, and propagates the label up to all nodes on the path from the block root to this node.

@param node
the node to mark
@param label
the label to mark the node with