Gittern\Entity\Diff\TreeDiff::getAddedLeafNodesRecursive PHP Method

getAddedLeafNodesRecursive() public method

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

Usage Example

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