Пример #1
0
 /**
  * @return \TreeNode 
  */
 public function build()
 {
     $node = new TreeNode($this->data, $this->id);
     $node->setChildren($this->children);
     $node->setObject($this->object);
     return $node;
 }
 /**
  * @return TreeNode
  */
 public function wrapInAThreeLevelArtifactTree(array $cards)
 {
     $forest = new TreeNode();
     $forest->setChildren($cards);
     $root = new TreeNode();
     $root->addChild($forest);
     return $root;
 }
 public function visit(TreeNode $node)
 {
     $top_parents = array();
     $cache_alreaydy_built_parents = array();
     foreach ($node->getChildren() as $child) {
         $top = $this->buildParentHierarchy($child, $cache_alreaydy_built_parents);
         $top_parents[$top->getId()] = $top;
     }
     $node->setChildren($top_parents);
 }
 public function visit(TreeNode $tree_node)
 {
     $new_children = array();
     foreach ($tree_node->getChildren() as $child_node) {
         $child_artifact = $child_node->getObject();
         if ($this->hierarchy->exists($child_artifact->getTrackerId())) {
             if ($this->isBacklogPlannableArtifact($child_artifact)) {
                 $new_children[] = $child_node;
             } else {
                 $new_subchildren = $child_node->accept($this)->getChildren();
                 $new_children = array_merge($new_children, $new_subchildren);
             }
         }
     }
     $new_tree_node = new TreeNode();
     $new_tree_node->setChildren($new_children);
     return $new_tree_node;
 }
Пример #5
0
 public function itSetsTheParentNodeOfTheChildren()
 {
     $root = new TreeNode();
     $node_1 = new TreeNode();
     $node_2 = new TreeNode();
     $children = array($node_1, $node_2);
     $root->setChildren($children);
     $this->assertEqual($root, $node_2->getParentNode());
     $this->assertEqual($root, $node_1->getParentNode());
 }