--- a/busui/owa/modules/base/classes/column.php +++ b/busui/owa/modules/base/classes/column.php @@ -1,1 +1,198 @@ - + + * @copyright Copyright © 2006 Peter Adams + * @license http://www.gnu.org/copyleft/gpl.html GPL v2.0 + * @category owa + * @package owa + * @version $Revision$ + * @since owa 1.0.0 + */ + +class owa_dbColumn { + + var $name; + + var $value; + + var $data_type; + + var $foriegn_key; + + var $is_primary_key = false; + + var $auto_increment = false; + + var $is_unique = false; + + var $is_not_null = false; + + var $label; + + var $index; + + var $default_value; + + function __construct($name ='', $data_type = '') { + + if ($name) { + $this->setName($name); + } + + if ($data_type) { + $this->setDataType($data_type); + } + + } + + function get($name) { + + return $this->$name; + } + + function set($name, $value) { + + $this->$name = $value; + + return; + } + + function getValue() { + + return $this->value; + } + + function setValue($value) { + + $this->value = $value; + + return; + } + + function getDefinition() { + + $definition = ''; + + $definition .= $this->get('data_type'); + + // Check for auto increment + if ($this->get('auto_increment') == true): + $definition .= ' '.OWA_DTD_AUTO_INCREMENT; + endif; + + // Check for auto Not null + if ($this->get('is_not_null') == true): + $definition .= ' '.OWA_DTD_NOT_NULL; + endif; + + // Check for unique + if ($this->get('is_unique') == true): + $definition .= ' '.OWA_DTD_UNIQUE; + endif; + + // check for primary key + if ($this->get('is_primary_key') == true): + $definition .= ' '.OWA_DTD_PRIMARY_KEY; + //$definition .= sprintf(", INDEX (%s)", $this->get('name')); + endif; + + // check for index + if ($this->get('index') == true): + $definition .= sprintf(", INDEX (%s)", $this->get('name')); + endif; + + return $definition; + + } + + function setDataType($type) { + + $this->data_type = $type; + } + + function setDefaultValue($value) { + + $this->default_value = $value; + } + + function setPrimaryKey() { + + $this->is_primary_key = true; + } + + function setIndex() { + + $this->index = true; + } + + function setNotNull() { + + $this->is_not_null = true; + } + + function setUnique() { + + $this->is_unique = true; + } + + function setLabel($label) { + + $this->label = $label; + } + + function setForeignKey($entity, $column = 'id') { + + $this->foreign_key = array($entity, $column); + } + + function getForeignKey() { + + return $this->foreign_key; + } + + function isForeignKey() { + + if (!empty($this->foreign_key)) { + return true; + } else { + return false; + } + } + + function setAutoIncrement() { + + $this->auto_increment = true; + } + + function setName($name) { + + $this->name = $name; + } + + function getName() { + + return $this->name; + } + + } + +?>