<?php 
 
/* 
 * This file is part of the Symfony package. 
 * 
 * (c) Fabien Potencier <[email protected]> 
 * 
 * For the full copyright and license information, please view the LICENSE 
 * file that was distributed with this source code. 
 */ 
 
namespace Symfony\Component\Console\Style; 
 
use Symfony\Component\Console\Formatter\OutputFormatterInterface; 
use Symfony\Component\Console\Helper\ProgressBar; 
use Symfony\Component\Console\Output\OutputInterface; 
use Symfony\Component\Console\Output\ConsoleOutputInterface; 
 
/** 
 * Decorates output to add console style guide helpers. 
 * 
 * @author Kevin Bond <[email protected]> 
 */ 
abstract class OutputStyle implements OutputInterface, StyleInterface 
{ 
    private $output; 
 
    /** 
     * @param OutputInterface $output 
     */ 
    public function __construct(OutputInterface $output) 
    { 
        $this->output = $output; 
    } 
 
    /** 
     * {@inheritdoc} 
     */ 
    public function newLine($count = 1) 
    { 
        $this->output->write(str_repeat(PHP_EOL, $count)); 
    } 
 
    /** 
     * @param int $max 
     * 
     * @return ProgressBar 
     */ 
    public function createProgressBar($max = 0) 
    { 
        return new ProgressBar($this->output, $max); 
    } 
 
    /** 
     * {@inheritdoc} 
     */ 
    public function write($messages, $newline = false, $type = self::OUTPUT_NORMAL) 
    { 
        $this->output->write($messages, $newline, $type); 
    } 
 
    /** 
     * {@inheritdoc} 
     */ 
    public function writeln($messages, $type = self::OUTPUT_NORMAL) 
    { 
        $this->output->writeln($messages, $type); 
    } 
 
    /** 
     * {@inheritdoc} 
     */ 
    public function setVerbosity($level) 
    { 
        $this->output->setVerbosity($level); 
    } 
 
    /** 
     * {@inheritdoc} 
     */ 
    public function getVerbosity() 
    { 
        return $this->output->getVerbosity(); 
    } 
 
    /** 
     * {@inheritdoc} 
     */ 
    public function setDecorated($decorated) 
    { 
        $this->output->setDecorated($decorated); 
    } 
 
    /** 
     * {@inheritdoc} 
     */ 
    public function isDecorated() 
    { 
        return $this->output->isDecorated(); 
    } 
 
    /** 
     * {@inheritdoc} 
     */ 
    public function setFormatter(OutputFormatterInterface $formatter) 
    { 
        $this->output->setFormatter($formatter); 
    } 
 
    /** 
     * {@inheritdoc} 
     */ 
    public function getFormatter() 
    { 
        return $this->output->getFormatter(); 
    } 
 
    /** 
     * {@inheritdoc} 
     */ 
    public function isQuiet() 
    { 
        return $this->output->isQuiet(); 
    } 
 
    /** 
     * {@inheritdoc} 
     */ 
    public function isVerbose() 
    { 
        return $this->output->isVerbose(); 
    } 
 
    /** 
     * {@inheritdoc} 
     */ 
    public function isVeryVerbose() 
    { 
        return $this->output->isVeryVerbose(); 
    } 
 
    /** 
     * {@inheritdoc} 
     */ 
    public function isDebug() 
    { 
        return $this->output->isDebug(); 
    } 
 
    protected function getErrorOutput() 
    { 
        if (!$this->output instanceof ConsoleOutputInterface) { 
            return $this->output; 
        } 
 
        return $this->output->getErrorOutput(); 
    } 
} 
 
 |