. */ require_once 'phing/system/io/PhingFile.php'; /** * A wrapper for the implementations of PHPUnit2ResultFormatter. * * @author Michiel Rook * @version $Id: FormatterElement.php 905 2010-10-05 16:28:03Z mrook $ * @package phing.tasks.ext.phpunit * @since 2.1.0 */ class FormatterElement { protected $formatter = NULL; protected $type = ""; protected $useFile = true; protected $toDir = "."; protected $outfile = ""; protected $parent = NULL; /** * Sets parent task * @param Task $parent Calling Task */ public function setParent($parent) { $this->parent = $parent; } /** * Loads a specific formatter type * @param string $type */ public function setType($type) { $this->type = $type; if ($this->type == "summary") { require_once 'phing/tasks/ext/phpunit/formatter/SummaryPHPUnitResultFormatter.php'; $this->formatter = new SummaryPHPUnitResultFormatter($this->parent); } else if ($this->type == "clover") { require_once 'phing/tasks/ext/phpunit/formatter/CloverPHPUnitResultFormatter.php'; $this->formatter = new CloverPHPUnitResultFormatter($this->parent); } else if ($this->type == "xml") { require_once 'phing/tasks/ext/phpunit/formatter/XMLPHPUnitResultFormatter.php'; $this->formatter = new XMLPHPUnitResultFormatter($this->parent); } else if ($this->type == "plain") { require_once 'phing/tasks/ext/phpunit/formatter/PlainPHPUnitResultFormatter.php'; $this->formatter = new PlainPHPUnitResultFormatter($this->parent); } else { throw new BuildException("Formatter '" . $this->type . "' not implemented"); } } /** * Loads a specific formatter class */ public function setClassName($className) { $classNameNoDot = Phing::import($className); $this->formatter = new $classNameNoDot(); } /** * Sets whether to store formatting results in a file */ public function setUseFile($useFile) { $this->useFile = $useFile; } /** * Returns whether to store formatting results in a file */ public function getUseFile() { return $this->useFile; } /** * Sets output directory * @param string $toDir */ public function setToDir($toDir) { $this->toDir = $toDir; } /** * Returns output directory * @return string */ public function getToDir() { return $this->toDir; } /** * Sets output filename * @param string $outfile */ public function setOutfile($outfile) { $this->outfile = $outfile; } /** * Returns output filename * @return string */ public function getOutfile() { if ($this->outfile) { return $this->outfile; } else { return $this->formatter->getPreferredOutfile() . $this->getExtension(); } } /** * Returns extension * @return string */ public function getExtension() { return $this->formatter->getExtension(); } /** * Returns formatter object * @return PHPUnitResultFormatter */ public function getFormatter() { return $this->formatter; } }