public boolean visitEnter( DependencyNode node ) { boolean recurse = true; DependencyNode clone = clones.get( node ); if ( clone == null ) { clone = clone( node ); clones.put( node, clone ); } else { recurse = false; } DependencyNode parent = parents.peek(); if ( parent == null ) { root = clone; } else { parent.getChildren().add( clone ); } parents.push( clone ); return recurse; }