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 /* $Id: StringType.class.php 4687 2007-12-09 18:57:18Z voxus $ */ 00012 00016 class StringType extends BasePropertyType 00017 { 00022 public function setDefault($default) 00023 { 00024 Assert::isString( 00025 $default, 00026 "strange default value given - '{$default}'" 00027 ); 00028 00029 $this->default = $default; 00030 00031 return $this; 00032 } 00033 00034 public function getDeclaration() 00035 { 00036 if ($this->hasDefault()) 00037 return "'{$this->default}'"; 00038 00039 return 'null'; 00040 } 00041 00042 public function isMeasurable() 00043 { 00044 return true; 00045 } 00046 00047 public function toColumnType($length = null) 00048 { 00049 return 00050 $length 00051 ? 'DataType::create(DataType::VARCHAR)' 00052 : 'DataType::create(DataType::TEXT)'; 00053 } 00054 00055 public function toPrimitive() 00056 { 00057 return 'Primitive::string'; 00058 } 00059 00060 public function toXsdType() 00061 { 00062 return 'xsd:string'; 00063 } 00064 } 00065 ?>