Chris@14: Chris@14: * Chris@14: * For the full copyright and license information, please view the LICENSE Chris@14: * file that was distributed with this source code. Chris@14: */ Chris@14: Chris@14: namespace SebastianBergmann\CodeCoverage\Report\Xml; Chris@14: Chris@14: class Unit Chris@14: { Chris@14: /** Chris@14: * @var \DOMElement Chris@14: */ Chris@14: private $contextNode; Chris@14: Chris@14: public function __construct(\DOMElement $context, $name) Chris@14: { Chris@14: $this->contextNode = $context; Chris@14: Chris@14: $this->setName($name); Chris@14: } Chris@14: Chris@14: private function setName($name) Chris@14: { Chris@14: $this->contextNode->setAttribute('name', $name); Chris@14: } Chris@14: Chris@14: public function setLines($start, $executable, $executed) Chris@14: { Chris@14: $this->contextNode->setAttribute('start', $start); Chris@14: $this->contextNode->setAttribute('executable', $executable); Chris@14: $this->contextNode->setAttribute('executed', $executed); Chris@14: } Chris@14: Chris@14: public function setCrap($crap) Chris@14: { Chris@14: $this->contextNode->setAttribute('crap', $crap); Chris@14: } Chris@14: Chris@14: public function setPackage($full, $package, $sub, $category) Chris@14: { Chris@14: $node = $this->contextNode->getElementsByTagNameNS( Chris@14: 'http://schema.phpunit.de/coverage/1.0', Chris@14: 'package' Chris@14: )->item(0); Chris@14: Chris@14: if (!$node) { Chris@14: $node = $this->contextNode->appendChild( Chris@14: $this->contextNode->ownerDocument->createElementNS( Chris@14: 'http://schema.phpunit.de/coverage/1.0', Chris@14: 'package' Chris@14: ) Chris@14: ); Chris@14: } Chris@14: Chris@14: $node->setAttribute('full', $full); Chris@14: $node->setAttribute('name', $package); Chris@14: $node->setAttribute('sub', $sub); Chris@14: $node->setAttribute('category', $category); Chris@14: } Chris@14: Chris@14: public function setNamespace($namespace) Chris@14: { Chris@14: $node = $this->contextNode->getElementsByTagNameNS( Chris@14: 'http://schema.phpunit.de/coverage/1.0', Chris@14: 'namespace' Chris@14: )->item(0); Chris@14: Chris@14: if (!$node) { Chris@14: $node = $this->contextNode->appendChild( Chris@14: $this->contextNode->ownerDocument->createElementNS( Chris@14: 'http://schema.phpunit.de/coverage/1.0', Chris@14: 'namespace' Chris@14: ) Chris@14: ); Chris@14: } Chris@14: Chris@14: $node->setAttribute('name', $namespace); Chris@14: } Chris@14: Chris@14: public function addMethod($name) Chris@14: { Chris@14: $node = $this->contextNode->appendChild( Chris@14: $this->contextNode->ownerDocument->createElementNS( Chris@14: 'http://schema.phpunit.de/coverage/1.0', Chris@14: 'method' Chris@14: ) Chris@14: ); Chris@14: Chris@14: return new Method($node, $name); Chris@14: } Chris@14: }