Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
100.00% |
1 / 1 |
|
100.00% |
3 / 3 |
CRAP | |
100.00% |
11 / 11 |
| GraphBuilder | |
100.00% |
1 / 1 |
|
100.00% |
3 / 3 |
3 | |
100.00% |
11 / 11 |
| __construct(array $cfg, Graph $g, LoggerInterface $log) | |
100.00% |
1 / 1 |
1 | |
100.00% |
4 / 4 |
|||
| buildContext() | |
100.00% |
1 / 1 |
1 | |
100.00% |
3 / 3 |
|||
| buildCollectors() | |
100.00% |
1 / 1 |
1 | |
100.00% |
4 / 4 |
|||
| <?php | |
| /* | |
| * Mondrian | |
| */ | |
| namespace Trismegiste\Mondrian\Transform; | |
| use Trismegiste\Mondrian\Graph\Graph; | |
| use Trismegiste\Mondrian\Visitor; | |
| use Trismegiste\Mondrian\Builder\Compiler\AbstractTraverser; | |
| use Trismegiste\Mondrian\Transform\Logger\LoggerInterface; | |
| /** | |
| * Design Pattern: Builder | |
| * | |
| * GraphBuilder is a builder for a compiler | |
| * | |
| */ | |
| class GraphBuilder extends AbstractTraverser | |
| { | |
| protected $graphResult; | |
| protected $config; | |
| protected $reflection; | |
| protected $vertexContext; | |
| protected $logger; | |
| /** | |
| * Injecting the external in/out parameters | |
| * | |
| * @param array $cfg | |
| * @param \Trismegiste\Mondrian\Graph\Graph $g | |
| * @param \Trismegiste\Mondrian\Transform\Logger\LoggerInterface $log | |
| */ | |
| public function __construct(array $cfg, Graph $g, LoggerInterface $log) | |
| { | |
| $this->config = $cfg; | |
| $this->graphResult = $g; | |
| $this->logger = $log; | |
| } | |
| /** | |
| * Build the context(s) for passes | |
| */ | |
| public function buildContext() | |
| { | |
| $this->reflection = new ReflectionContext(); | |
| $this->vertexContext = new GraphContext($this->config, $this->logger); | |
| } | |
| /** | |
| * Build a list of visitor for each pass | |
| * | |
| * @return FqcnCollector[] list of passes | |
| */ | |
| public function buildCollectors() | |
| { | |
| return array( | |
| new Visitor\SymbolMap($this->reflection), | |
| new Visitor\VertexCollector($this->reflection, $this->vertexContext, $this->graphResult), | |
| new Visitor\EdgeCollector($this->reflection, $this->vertexContext, $this->graphResult) | |
| ); | |
| } | |
| } |