onPHP

core/Base/Assert.class.php Source File

 

Assert.class.php

Go to the documentation of this file.
00001 <?php
00002 /***************************************************************************
00003  *   Copyright (C) 2005-2006 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 General Public License as published by  *
00007  *   the Free Software Foundation; either version 2 of the License, or     *
00008  *   (at your option) any later version.                                   *
00009  *                                                                         *
00010  ***************************************************************************/
00011 /* $Id: Assert.class.php 1959 2006-08-10 16:15:21Z voxus $ */
00012 
00018     final class Assert extends StaticFactory
00019     {
00020         public static function isTrue($boolean, $message = null)
00021         {
00022             if ($boolean !== true)
00023                 self::fail($message);
00024         }
00025 
00026         public static function isFalse($boolean, $message = null)
00027         {
00028             self::isTrue(!$boolean);
00029         }
00030 
00031         public static function isArray(&$variable, $message = null)
00032         {
00033             if (!is_array($variable))
00034                 self::fail($message);
00035         }
00036 
00037         public static function isInteger($variable, $message = null)
00038         {
00039             if (
00040                 !(
00041                     is_numeric($variable)
00042                     && $variable == (int) $variable
00043                     && strlen($variable) == strlen((int) $variable)
00044                 )
00045                 && !($variable == 0) // (string) '00' == (int) 0
00046             )
00047                 self::fail($message);
00048         }
00049 
00050         public static function isString(&$variable, $message = null)
00051         {
00052             if (!is_string($variable))
00053                 self::fail($message);
00054         }
00055         
00056         public static function isBoolean(&$variable, $message = null)
00057         {
00058             if (!($variable === true || $variable === false))
00059                 self::fail($message);
00060         }
00061 
00062         public static function isTernaryBase(&$variable, $message = null)
00063         {
00064             if (
00065                 !(
00066                     ($variable === true)
00067                     || ($variable === false)
00068                     || ($variable === null)
00069                 )
00070             )
00071                 self::fail($message);
00072         }
00073 
00074         public static function brothers(&$first, &$second, $message = null)
00075         {
00076             if (get_class($first) !== get_class($second))
00077                 self::fail($message);
00078         }
00079         
00080         private static function fail($message = null)
00081         {
00082             throw new WrongArgumentException(
00083                 $message
00084                 .(
00085                     defined('__LOCAL_DEBUG__')
00086                         ? "\n\n".var_export(debug_backtrace(), true)
00087                         : null
00088                 )
00089             );
00090         }
00091     }
00092 ?>

generated by doxygen-1.4.7
for onPHP at Thu Aug 10 20:23:39 2006