MetaOutput.class.php

Go to the documentation of this file.
00001 <?php
00002 /***************************************************************************
00003  *   Copyright (C) 2006-2007 by Konstantin V. Arkhipov                     *
00004  *                                                                         *
00005  *   This program is free software; you can redistribute it and/or modify  *
00006  *   it under the terms of the GNU Lesser General Public License as        *
00007  *   published by the Free Software Foundation; either version 3 of the    *
00008  *   License, or (at your option) any later version.                       *
00009  *                                                                         *
00010  ***************************************************************************/
00011 
00015     final class MetaOutput
00016     {
00017         private $out = null;
00018         
00019         public function __construct(TextOutput $out)
00020         {
00021             $this->out = $out;
00022         }
00023         
00027         public function getOutput()
00028         {
00029             return $this->out;
00030         }
00031         
00035         public function newLine()
00036         {
00037             $this->out->newLine();
00038             
00039             return $this;
00040         }
00041         
00045         public function log($text, $bold = false)
00046         {
00047             return $this->defaultText($text, ConsoleMode::FG_WHITE, $bold);
00048         }
00049         
00053         public function logLine($text, $bold = false)
00054         {
00055             return $this->defaultTextLine($text, ConsoleMode::FG_WHITE, $bold);
00056         }
00057         
00061         public function info($text, $bold = false)
00062         {
00063             return $this->defaultText($text, ConsoleMode::FG_GREEN, $bold);
00064         }
00065         
00069         public function infoLine($text, $bold = false)
00070         {
00071             return $this->defaultTextLine($text, ConsoleMode::FG_GREEN, $bold);
00072         }
00073         
00077         public function warning($text)
00078         {
00079             return $this->defaultText($text, ConsoleMode::FG_BROWN, true);
00080         }
00081         
00085         public function warningLine($text)
00086         {
00087             return $this->defaultTextLine($text, ConsoleMode::FG_BROWN, true);
00088         }
00089         
00093         public function error($text, $bold = false)
00094         {
00095             return $this->defaultText($text, ConsoleMode::FG_RED, $bold);
00096         }
00097         
00101         public function errorLine($text, $bold = false)
00102         {
00103             return $this->defaultTextLine($text, ConsoleMode::FG_RED, $bold);
00104         }
00105         
00109         public function remark($text)
00110         {
00111             return $this->defaultText($text, ConsoleMode::FG_BLUE, true);
00112         }
00113         
00117         public function remarkLine($text)
00118         {
00119             return $this->defaultTextLine($text, ConsoleMode::FG_BLUE, true);
00120         }
00121         
00125         private function defaultText($text, $color, $bold)
00126         {
00127             $this->out->
00128                 setMode(
00129                     $bold ? ConsoleMode::ATTR_BOLD : ConsoleMode::ATTR_RESET_ALL,
00130                     $color,
00131                     ConsoleMode::BG_BLACK
00132                 )->
00133                 write($text);
00134             
00135             if ($this->out instanceof ColoredTextOutput)
00136                 $this->out->resetAll();
00137             
00138             return $this;
00139         }
00140         
00144         private function defaultTextLine($text, $color, $bold)
00145         {
00146             $this->out->
00147                 setMode(
00148                     $bold ? ConsoleMode::ATTR_BOLD : ConsoleMode::ATTR_RESET_ALL,
00149                     $color,
00150                     ConsoleMode::BG_BLACK
00151                 )->
00152                 writeLine($text);
00153             
00154             if ($this->out instanceof ColoredTextOutput)
00155                 $this->out->resetAll();
00156             
00157             return $this;
00158         }
00159     }
00160 ?>