00001 <?php 00002 /*************************************************************************** 00003 * Copyright (C) 2007 by Ivan Y. Khvostishkov * 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 LogLevel extends Enumeration 00016 { 00017 const SEVERE = 1; // highest value 00018 const WARNING = 2; 00019 const INFO = 3; 00020 const CONFIG = 4; 00021 const FINE = 5; 00022 const FINER = 6; 00023 const FINEST = 7; // lowest value 00024 00025 protected $names = array( 00026 self::SEVERE => 'severe', 00027 self::WARNING => 'warning', 00028 self::INFO => 'info', 00029 self::CONFIG => 'config', 00030 self::FINE => 'fine', 00031 self::FINER => 'finer', 00032 self::FINEST => 'finest' 00033 ); 00034 00038 public function setId($id) 00039 { 00040 Assert::isNull($this->id, 'i am immutable one!'); 00041 00042 return parent::setId($id); 00043 } 00044 00048 public static function severe() 00049 { 00050 return self::getInstance(self::SEVERE); 00051 } 00052 00056 public static function warning() 00057 { 00058 return self::getInstance(self::WARNING); 00059 } 00060 00064 public static function info() 00065 { 00066 return self::getInstance(self::INFO); 00067 } 00068 00072 public static function config() 00073 { 00074 return self::getInstance(self::CONFIG); 00075 } 00076 00080 public static function fine() 00081 { 00082 return self::getInstance(self::FINE); 00083 } 00084 00088 public static function finer() 00089 { 00090 return self::getInstance(self::FINER); 00091 } 00092 00096 public static function finest() 00097 { 00098 return self::getInstance(self::FINEST); 00099 } 00100 00104 private static function getInstance($id) 00105 { 00106 static $instances = array(); 00107 00108 if (!isset($instances[$id])) 00109 $instances[$id] = new self($id); 00110 00111 return $instances[$id]; 00112 } 00113 } 00114 ?>