private void bubbleUpNodeTable ( DAGraph < DataT , NodeT > from , LinkedList < String > path ) { if ( path . contains ( from . rootNode . key ( ) ) ) { path . push ( from . rootNode . key ( ) ) ; // For better error message throw new IllegalStateException ( "Detected circular dependency: " + StringUtils . join ( path , " -> " ) ) ; } path . push ( from . rootNode . key ( ) ) ; for ( DAGraph < DataT , NodeT > to : from . parentDAGs ) { this . merge ( from . nodeTable , to . nodeTable ) ; this . bubbleUpNodeTable ( to , path ) ; } path . pop ( ) ; }
Propagates node table of given DAG to all of it ancestors .