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: IntegerType.class.php 4687 2007-12-09 18:57:18Z voxus $ */ 00012 00016 class IntegerType extends BasePropertyType 00017 { 00022 public function setDefault($default) 00023 { 00024 Assert::isInteger( 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 false; 00045 } 00046 00047 public function toColumnType() 00048 { 00049 return 'DataType::create(DataType::INTEGER)'; 00050 } 00051 00052 public function toPrimitive() 00053 { 00054 return 'Primitive::integer'; 00055 } 00056 00057 public function toPrimitiveLimits() 00058 { 00059 return 00060 'setMin(PrimitiveInteger::SIGNED_MIN)->' 00061 ."\n" 00062 .'setMax(PrimitiveInteger::SIGNED_MAX)'; 00063 } 00064 00065 public function toXsdType() 00066 { 00067 return 'xsd:int'; 00068 } 00069 } 00070 ?>