CreoleTypes.php

Go to the documentation of this file.
00001 <?php 00002 /* 00003 * $Id: CreoleTypes.php,v 1.3 2004/05/09 21:19:23 micha 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 class CreoleTypes 00031 { 00032 function BOOLEAN() { return (1); } 00033 function BIGINT() { return (2); } 00034 function SMALLINT() { return (3); } 00035 function TINYINT() { return (4); } 00036 function INTEGER() { return (5); } 00037 function CHAR() { return (6); } 00038 function VARCHAR() { return (7); } 00039 function TEXT() { return (17); } 00040 function FLOAT() { return (8); } 00041 function DOUBLE() { return (9); } 00042 function DATE() { return (10); } 00043 function TIME() { return (11); } 00044 function TIMESTAMP() { return (12); } 00045 function VARBINARY() { return (13); } 00046 function NUMERIC() { return (14); } 00047 function BLOB() { return (15); } 00048 function CLOB() { return (16); } 00049 function LONGVARCHAR() { return (17); } 00050 function DECIMAL() { return (18); } 00051 function REAL() { return (19); } 00052 function BINARY() { return (20); } 00053 function LONGVARBINARY() { return (21); } 00054 function YEAR() { return (22); } 00056 function ARR() { return (23); } 00057 function OTHER() { return (-1); } 00058 00060 var $affixMap = null; 00062 var $creoleTypeMap = null; 00063 00070 function getType($nativeType) 00071 { 00072 trigger_error( 00073 "CreoleTypes: abstract function getType() has to be reimplemented !", 00074 E_USER_ERROR 00075 ); 00076 } 00077 00085 function getNativeType($creoleType) 00086 { 00087 trigger_error( 00088 "CreoleTypes: abstract function getNativeType() has to be reimplemented !", 00089 E_USER_ERROR 00090 ); 00091 } 00092 00106 function getAffix($creoleType) 00107 { 00108 $self =& CreoleTypes::getInstance(); 00109 00110 if (! isset($self->affixMap[$creoleType])) { 00111 $e = new SQLException(CREOLE_ERROR, "Unable to return 'affix' for unknown CreoleType: " . $creoleType); 00112 print $e; 00113 return $e; 00114 } 00115 return $self->affixMap[$creoleType]; 00116 } 00117 00124 function getAffixForValue($value) 00125 { 00126 } 00127 00133 function getCreoleName($creoleType) 00134 { 00135 $self =& CreoleTypes::getInstance(); 00136 00137 if (! isset($self->creoleTypeMap[$creoleType])) { 00138 return null; 00139 } 00140 return $self->creoleTypeMap[$creoleType]; 00141 } 00142 00148 function getCreoleCode($creoleTypeName) 00149 { 00150 $self =& CreoleTypes::getInstance(); 00151 $type = array_search($creoleTypeName, $self->creoleTypeMap); 00152 00153 if ($type === false) { 00154 return null; 00155 } 00156 00157 return $type; 00158 } 00159 00160 /* 00161 * @private 00162 */ 00163 function & getInstance() 00164 { 00165 static $instance; 00166 00167 if ($instance === null) 00168 { 00169 $instance = new CreoleTypes(); 00170 $instance->affixMap = array 00171 ( 00172 CreoleTypes::BOOLEAN() => 'Boolean', 00173 CreoleTypes::BIGINT() => 'Int', 00174 CreoleTypes::CHAR() => 'String', 00175 CreoleTypes::DATE() => 'Date', 00176 CreoleTypes::DOUBLE() => 'Float', 00177 CreoleTypes::FLOAT() => 'Float', 00178 CreoleTypes::INTEGER() => 'Int', 00179 CreoleTypes::SMALLINT() => 'Int', 00180 CreoleTypes::TINYINT() => 'Int', 00181 CreoleTypes::TIME() => 'Time', 00182 CreoleTypes::TIMESTAMP() => 'Timestamp', 00183 CreoleTypes::VARCHAR() => 'String', 00184 CreoleTypes::VARBINARY() => 'Blob', 00185 CreoleTypes::NUMERIC() => 'Float', 00186 CreoleTypes::BLOB() => 'Blob', 00187 CreoleTypes::CLOB() => 'Clob', 00188 CreoleTypes::LONGVARCHAR() => 'String', 00189 CreoleTypes::DECIMAL() => 'Float', 00190 CreoleTypes::REAL() => 'Float', 00191 CreoleTypes::BINARY() => 'Blob', 00192 CreoleTypes::LONGVARBINARY() => 'Blob', 00193 CreoleTypes::YEAR() => 'Int', 00194 CreoleTypes::ARR() => 'Array', 00195 CreoleTypes::OTHER() => '', // get() and set() for unknown 00196 ); 00197 00198 $instance->creoleTypeMap = array 00199 ( 00200 CreoleTypes::BOOLEAN() => 'BOOLEAN', 00201 CreoleTypes::BIGINT() => 'BIGINT', 00202 CreoleTypes::SMALLINT() => 'SMALLINT', 00203 CreoleTypes::TINYINT() => 'TINYINT', 00204 CreoleTypes::INTEGER() => 'INTEGER', 00205 CreoleTypes::NUMERIC() => 'NUMERIC', 00206 CreoleTypes::DECIMAL() => 'DECIMAL', 00207 CreoleTypes::REAL() => 'REAL', 00208 CreoleTypes::FLOAT() => 'FLOAT', 00209 CreoleTypes::DOUBLE() => 'DOUBLE', 00210 CreoleTypes::CHAR() => 'CHAR', 00211 CreoleTypes::VARCHAR() => 'VARCHAR', 00212 CreoleTypes::TEXT() => 'TEXT', 00213 CreoleTypes::TIME() => 'TIME', 00214 CreoleTypes::TIMESTAMP() => 'TIMESTAMP', 00215 CreoleTypes::DATE() => 'DATE', 00216 CreoleTypes::YEAR() => 'YEAR', 00217 CreoleTypes::VARBINARY() => 'VARBINARY', 00218 CreoleTypes::BLOB() => 'BLOB', 00219 CreoleTypes::CLOB() => 'CLOB', 00220 CreoleTypes::LONGVARCHAR() => 'LONGVARCHAR', 00221 CreoleTypes::BINARY() => 'BINARY', 00222 CreoleTypes::LONGVARBINARY() => 'LONGVARBINARY', 00223 CreoleTypes::ARR() => 'ARR', 00224 CreoleTypes::OTHER() => 'OTHER', // string is "raw" return 00225 ); 00226 } 00227 00228 return $instance; 00229 } 00230 }

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


Copyright © 2004 Hans Lellelid  
Creole[php4] CVS