* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Behat\Testwork\Output\Printer\Factory; use Symfony\Component\Console\Output\OutputInterface; /** * @author Wouter J * @author Konstantin Kudryashov */ abstract class OutputFactory { const VERBOSITY_NORMAL = 1; const VERBOSITY_VERBOSE = 2; const VERBOSITY_VERY_VERBOSE = 3; const VERBOSITY_DEBUG = 4; /** * @var null|string */ private $outputPath; /** * @var array */ private $outputStyles = array(); /** * @var null|Boolean */ private $outputDecorated = null; /** * @var integer */ private $verbosityLevel = 0; /** * Sets output path. * * @param string $path */ public function setOutputPath($path) { $this->outputPath = $path; } /** * Returns output path. * * @return null|string */ public function getOutputPath() { return $this->outputPath; } /** * Sets output styles. * * @param array $styles */ public function setOutputStyles(array $styles) { $this->outputStyles = $styles; } /** * Returns output styles. * * @return array */ public function getOutputStyles() { return $this->outputStyles; } /** * Forces output to be decorated. * * @param Boolean $decorated */ public function setOutputDecorated($decorated) { $this->outputDecorated = $decorated; } /** * Returns output decoration status. * * @return null|Boolean */ public function isOutputDecorated() { return $this->outputDecorated; } /** * Sets output verbosity level. * * @param integer $level */ public function setOutputVerbosity($level) { $this->verbosityLevel = intval($level); } /** * Returns output verbosity level. * * @return integer */ public function getOutputVerbosity() { return $this->verbosityLevel; } /** * Returns a new output stream. * * @return OutputInterface */ abstract public function createOutput(); }