getAddedLeafNodesRecursive() public method

Example #1
0
 public function getAddedLeafNodesRecursive()
 {
     $leaf_nodes = array();
     foreach ($this->comparison->getNodes() as $node) {
         if ($node instanceof TreeNode) {
             if ($this->base->hasNodeNamed($node->getName())) {
                 $base_tree = $this->base->getNodeNamed($node->getName())->getTree();
             } else {
                 $base_tree = new Tree();
             }
             $diff = new TreeDiff($base_tree, $node->getTree());
             foreach ($diff->getAddedLeafNodesRecursive() as $leaf_node) {
                 $leaf_nodes[$node->getName() . '/' . $leaf_node->getName()] = $leaf_node;
             }
         } else {
             if (!$this->base->hasNodeNamed($node->getName())) {
                 $leaf_nodes[$node->getName()] = $node;
             }
         }
     }
     return $leaf_nodes;
 }