public function addNode(Concentrate_Graph_Node $node) { $key = $node->getKey(); if (!isset($this->nodes[$key])) { $this->nodes[$key] = $node; $node->setGraph($this); } return $this; }
public function isConnectedTo(Concentrate_Graph_Node $node) { $key = $node->getKey(); return $node->graph === $this->graph && isset($this->outArcs[$key]); }
<?php error_reporting(E_ALL); set_include_path(dirname(dirname(__FILE__)) . ':' . get_include_path()); require_once 'Concentrate/Graph.php'; require_once 'Concentrate/Graph/Node.php'; require_once 'Concentrate/Graph/TopologicalSorter.php'; $graph = new Concentrate_Graph(); $swat = new Concentrate_Graph_Node($graph, 'Swat'); $store = new Concentrate_Graph_Node($graph, 'Store'); $swatYui = new Concentrate_Graph_Node($graph, 'SwatYui'); $admin = new Concentrate_Graph_Node($graph, 'Admin'); $site = new Concentrate_Graph_Node($graph, 'Site'); $xmlRpcAjax = new Concentrate_Graph_Node($graph, 'XML_RPCAjax'); $blorg = new Concentrate_Graph_Node($graph, 'Blorg'); $pinhole = new Concentrate_Graph_Node($graph, 'Pinhole'); $swat->connectTo($swatYui); $store->connectTo($swat); $store->connectTo($site); $site->connectTo($xmlRpcAjax); $site->connectTo($swat); $admin->connectTo($swat); $admin->connectTo($site); $blorg->connectTo($swat); $blorg->connectTo($site); $blorg->connectTo($admin); $pinhole->connectTo($swat); $pinhole->connectTo($site); $pinhole->connectTo($blorg); $sorter = new Concentrate_Graph_TopologicalSorter(); $sorted = $sorter->sort($graph);