annotate vendor/phpunit/php-code-coverage/src/Report/Xml/Node.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 1fec387a4317
children
rev   line source
Chris@14 1 <?php
Chris@14 2 /*
Chris@14 3 * This file is part of the php-code-coverage package.
Chris@14 4 *
Chris@14 5 * (c) Sebastian Bergmann <sebastian@phpunit.de>
Chris@14 6 *
Chris@14 7 * For the full copyright and license information, please view the LICENSE
Chris@14 8 * file that was distributed with this source code.
Chris@14 9 */
Chris@14 10
Chris@14 11 namespace SebastianBergmann\CodeCoverage\Report\Xml;
Chris@14 12
Chris@14 13 class Node
Chris@14 14 {
Chris@14 15 /**
Chris@14 16 * @var \DOMDocument
Chris@14 17 */
Chris@14 18 private $dom;
Chris@14 19
Chris@14 20 /**
Chris@14 21 * @var \DOMElement
Chris@14 22 */
Chris@14 23 private $contextNode;
Chris@14 24
Chris@14 25 public function __construct(\DOMElement $context)
Chris@14 26 {
Chris@14 27 $this->setContextNode($context);
Chris@14 28 }
Chris@14 29
Chris@14 30 protected function setContextNode(\DOMElement $context)
Chris@14 31 {
Chris@14 32 $this->dom = $context->ownerDocument;
Chris@14 33 $this->contextNode = $context;
Chris@14 34 }
Chris@14 35
Chris@14 36 public function getDom()
Chris@14 37 {
Chris@14 38 return $this->dom;
Chris@14 39 }
Chris@14 40
Chris@14 41 protected function getContextNode()
Chris@14 42 {
Chris@14 43 return $this->contextNode;
Chris@14 44 }
Chris@14 45
Chris@14 46 public function getTotals()
Chris@14 47 {
Chris@14 48 $totalsContainer = $this->getContextNode()->firstChild;
Chris@14 49
Chris@14 50 if (!$totalsContainer) {
Chris@14 51 $totalsContainer = $this->getContextNode()->appendChild(
Chris@14 52 $this->dom->createElementNS(
Chris@14 53 'http://schema.phpunit.de/coverage/1.0',
Chris@14 54 'totals'
Chris@14 55 )
Chris@14 56 );
Chris@14 57 }
Chris@14 58
Chris@14 59 return new Totals($totalsContainer);
Chris@14 60 }
Chris@14 61
Chris@14 62 public function addDirectory($name)
Chris@14 63 {
Chris@14 64 $dirNode = $this->getDom()->createElementNS(
Chris@14 65 'http://schema.phpunit.de/coverage/1.0',
Chris@14 66 'directory'
Chris@14 67 );
Chris@14 68
Chris@14 69 $dirNode->setAttribute('name', $name);
Chris@14 70 $this->getContextNode()->appendChild($dirNode);
Chris@14 71
Chris@14 72 return new Directory($dirNode);
Chris@14 73 }
Chris@14 74
Chris@14 75 public function addFile($name, $href)
Chris@14 76 {
Chris@14 77 $fileNode = $this->getDom()->createElementNS(
Chris@14 78 'http://schema.phpunit.de/coverage/1.0',
Chris@14 79 'file'
Chris@14 80 );
Chris@14 81
Chris@14 82 $fileNode->setAttribute('name', $name);
Chris@14 83 $fileNode->setAttribute('href', $href);
Chris@14 84 $this->getContextNode()->appendChild($fileNode);
Chris@14 85
Chris@14 86 return new File($fileNode);
Chris@14 87 }
Chris@14 88 }