CreoleTypes.php

Go to the documentation of this file.
00001 <?php 00002 /* 00003 * $Id: CreoleTypes.php,v 1.16 2004/03/20 04:16:49 hlellelid Exp $ 00004 * 00005 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00006 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00007 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 00008 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 00009 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00010 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00011 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00012 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 00013 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00014 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00015 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00016 * 00017 * This software consists of voluntary contributions made by many individuals 00018 * and is licensed under the LGPL. For more information please see 00019 * <http://creole.phpdb.org>. 00020 */ 00021 00030 abstract class CreoleTypes { 00031 00032 const BOOLEAN = 1; 00033 const BIGINT = 2; 00034 const SMALLINT = 3; 00035 const TINYINT = 4; 00036 const INTEGER = 5; 00037 const CHAR = 6; 00038 const VARCHAR = 7; 00039 const TEXT = 17; 00040 const FLOAT = 8; 00041 const DOUBLE = 9; 00042 const DATE = 10; 00043 const TIME = 11; 00044 const TIMESTAMP = 12; 00045 const VARBINARY = 13; 00046 const NUMERIC = 14; 00047 const BLOB = 15; 00048 const CLOB = 16; 00049 const LONGVARCHAR = 17; 00050 const DECIMAL = 18; 00051 const REAL = 19; 00052 const BINARY = 20; 00053 const LONGVARBINARY = 21; 00054 const YEAR = 22; 00055 00057 const ARR = 23; 00058 00059 const OTHER = -1; 00060 00062 protected static $affixMap = array( 00063 self::BOOLEAN => 'Boolean', 00064 self::BIGINT => 'Int', 00065 self::CHAR => 'String', 00066 self::DATE => 'Date', 00067 self::DOUBLE => 'Float', 00068 self::FLOAT => 'Float', 00069 self::INTEGER => 'Int', 00070 self::SMALLINT => 'Int', 00071 self::TINYINT => 'Int', 00072 self::TIME => 'Time', 00073 self::TIMESTAMP => 'Timestamp', 00074 self::VARCHAR => 'String', 00075 self::VARBINARY => 'Blob', 00076 self::NUMERIC => 'Float', 00077 self::BLOB => 'Blob', 00078 self::CLOB => 'Clob', 00079 self::LONGVARCHAR => 'String', 00080 self::DECIMAL => 'Float', 00081 self::REAL => 'Float', 00082 self::BINARY => 'Blob', 00083 self::LONGVARBINARY => 'Blob', 00084 self::YEAR => 'Int', 00085 self::ARR => 'Array', 00086 self::OTHER => '', // get() and set() for unknown 00087 ); 00088 00090 protected static $creoleTypeMap = array( 00091 self::BOOLEAN => 'BOOLEAN', 00092 self::BIGINT => 'BIGINT', 00093 self::SMALLINT => 'SMALLINT', 00094 self::TINYINT => 'TINYINT', 00095 self::INTEGER => 'INTEGER', 00096 self::NUMERIC => 'NUMERIC', 00097 self::DECIMAL => 'DECIMAL', 00098 self::REAL => 'REAL', 00099 self::FLOAT => 'FLOAT', 00100 self::DOUBLE => 'DOUBLE', 00101 self::CHAR => 'CHAR', 00102 self::VARCHAR => 'VARCHAR', 00103 self::TEXT => 'TEXT', 00104 self::TIME => 'TIME', 00105 self::TIMESTAMP => 'TIMESTAMP', 00106 self::DATE => 'DATE', 00107 self::YEAR => 'YEAR', 00108 self::VARBINARY => 'VARBINARY', 00109 self::BLOB => 'BLOB', 00110 self::CLOB => 'CLOB', 00111 self::LONGVARCHAR => 'LONGVARCHAR', 00112 self::BINARY => 'BINARY', 00113 self::LONGVARBINARY => 'LONGVARBINARY', 00114 self::ARR => 'ARR', 00115 self::OTHER => 'OTHER', // string is "raw" return 00116 ); 00117 00124 abstract static function getType($nativeType); 00125 00133 abstract static function getNativeType($creoleType); 00134 00148 public static function getAffix($creoleType) 00149 { 00150 if (!isset(self::$affixMap[$creoleType])) { 00151 $e = new SQLException("Unable to return 'affix' for unknown CreoleType: " . $creoleType); 00152 print $e; 00153 throw $e; 00154 } 00155 return self::$affixMap[$creoleType]; 00156 } 00157 00163 public static function getCreoleName($creoleType) 00164 { 00165 if (!isset(self::$creoleTypeMap[$creoleType])) { 00166 return null; 00167 } 00168 return self::$creoleTypeMap[$creoleType]; 00169 } 00170 00176 public static function getCreoleCode($creoleTypeName) 00177 { 00178 $type = array_search($creoleTypeName, self::$creoleTypeMap); 00179 if ($type === false) { 00180 return null; 00181 } 00182 return $type; 00183 } 00184 }

This file is part of the Creole[php5] library.


Copyright © 2004 Hans Lellelid  
Creole[php5] CVS