Chris@0: Chris@0: * Chris@0: * For the full copyright and license information, please view the LICENSE Chris@0: * file that was distributed with this source code. Chris@0: */ Chris@0: Chris@0: /** Chris@0: * @since Class available since Release 2.0.0 Chris@0: */ Chris@0: class PHP_CodeCoverage_Report_XML_Node Chris@0: { Chris@0: /** Chris@0: * @var DOMDocument Chris@0: */ Chris@0: private $dom; Chris@0: Chris@0: /** Chris@0: * @var DOMElement Chris@0: */ Chris@0: private $contextNode; Chris@0: Chris@0: public function __construct(DOMElement $context) Chris@0: { Chris@0: $this->setContextNode($context); Chris@0: } Chris@0: Chris@0: protected function setContextNode(DOMElement $context) Chris@0: { Chris@0: $this->dom = $context->ownerDocument; Chris@0: $this->contextNode = $context; Chris@0: } Chris@0: Chris@0: public function getDom() Chris@0: { Chris@0: return $this->dom; Chris@0: } Chris@0: Chris@0: protected function getContextNode() Chris@0: { Chris@0: return $this->contextNode; Chris@0: } Chris@0: Chris@0: public function getTotals() Chris@0: { Chris@0: $totalsContainer = $this->getContextNode()->firstChild; Chris@0: Chris@0: if (!$totalsContainer) { Chris@0: $totalsContainer = $this->getContextNode()->appendChild( Chris@0: $this->dom->createElementNS( Chris@0: 'http://schema.phpunit.de/coverage/1.0', Chris@0: 'totals' Chris@0: ) Chris@0: ); Chris@0: } Chris@0: Chris@0: return new PHP_CodeCoverage_Report_XML_Totals($totalsContainer); Chris@0: } Chris@0: Chris@0: public function addDirectory($name) Chris@0: { Chris@0: $dirNode = $this->getDom()->createElementNS( Chris@0: 'http://schema.phpunit.de/coverage/1.0', Chris@0: 'directory' Chris@0: ); Chris@0: Chris@0: $dirNode->setAttribute('name', $name); Chris@0: $this->getContextNode()->appendChild($dirNode); Chris@0: Chris@0: return new PHP_CodeCoverage_Report_XML_Directory($dirNode); Chris@0: } Chris@0: Chris@0: public function addFile($name, $href) Chris@0: { Chris@0: $fileNode = $this->getDom()->createElementNS( Chris@0: 'http://schema.phpunit.de/coverage/1.0', Chris@0: 'file' Chris@0: ); Chris@0: Chris@0: $fileNode->setAttribute('name', $name); Chris@0: $fileNode->setAttribute('href', $href); Chris@0: $this->getContextNode()->appendChild($fileNode); Chris@0: Chris@0: return new PHP_CodeCoverage_Report_XML_File($fileNode); Chris@0: } Chris@0: }