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; }