. */ include_once 'propel/map/ValidatorMap.php'; /** * ColumnMap is used to model a column of a table in a database. * * GENERAL NOTE * ------------ * The propel.map classes are abstract building-block classes for modeling * the database at runtime. These classes are similar (a lite version) to the * propel.engine.database.model classes, which are build-time modeling classes. * These classes in themselves do not do any database metadata lookups, but instead * are used by the MapBuilder classes that were generated for your datamodel. The * MapBuilder that was created for your datamodel build a representation of your * database by creating instances of the DatabaseMap, TableMap, ColumnMap, etc. * classes. See propel/templates/om/php5/MapBuilder.tpl and the classes generated * by that template for your datamodel to further understand how these are put * together. * * @author Hans Lellelid (Propel) * @author John D. McNally (Torque) * @version $Revision: 536 $ * @package propel.map */ class ColumnMap { /** @var int Creole type for this column. */ private $creoleType; /** @var string Native PHP type of the column. */ private $type = null; /** Size of the column. */ private $size = 0; /** Is it a primary key? */ private $pk = false; /** Is null value allowed ?*/ private $notNull = false; /** Name of the table that this column is related to. */ private $relatedTableName = ""; /** Name of the column that this column is related to. */ private $relatedColumnName = ""; /** The TableMap for this column. */ private $table; /** The name of the column. */ private $columnName; /** The php name of the column. */ private $phpName; /** validators for this column */ private $validators = array(); /** * Constructor. * * @param string $name The name of the column. * @param TableMap containingTable TableMap of the table this column is in. */ public function __construct($name, TableMap $containingTable) { $this->columnName = $name; $this->table = $containingTable; } /** * Get the name of a column. * * @return string A String with the column name. */ public function getColumnName() { return $this->columnName; } /** * Set the php anme of this column. * * @param string $phpName A string representing the PHP name. * @return void */ public function setPhpName($phpName) { $this->phpName = $phpName; } /** * Get the name of a column. * * @return string A String with the column name. */ public function getPhpName() { return $this->phpName; } /** * Get the table name + column name. * * @return string A String with the full column name. */ public function getFullyQualifiedName() { return $this->table->getName() . "." . $this->columnName; } /** * Get the table map this column belongs to. * @return TableMap */ public function getTable() { return $this->table; } /** * Get the name of the table this column is in. * * @return string A String with the table name. */ public function getTableName() { return $this->table->getName(); } /** * Set the type of this column. * * @param string $type A string representing the PHP native type. * @return void */ public function setType($type) { $this->type = $type; } /** * Set the Creole type of this column. * * @param int $type An int representing Creole type for this column. * @return void */ public function setCreoleType($type) { $this->creoleType = $type; } /** * Set the size of this column. * * @param int $size An int specifying the size. * @return void */ public function setSize($size) { $this->size = $size; } /** * Set if this column is a primary key or not. * * @param boolean $pk True if column is a primary key. * @return void */ public function setPrimaryKey($pk) { $this->pk = $pk; } /** * Set if this column may be null. * * @param boolean nn True if column may be null. * @return void */ public function setNotNull($nn) { $this->notNull = $nn; } /** * Gets the default value for this column. * @return mixed String or NULL */ public function getDefaultValue() { return $this->defaultValue; } /** * Set the foreign key for this column. * * @param string tableName The name of the table that is foreign. * @param string columnName The name of the column that is foreign. * @return void */ public function setForeignKey($tableName, $columnName) { if ($tableName && $columnName) { $this->relatedTableName = $tableName; $this->relatedColumnName = $columnName; } else { $this->relatedTableName = ""; $this->relatedColumnName = ""; } } public function addValidator($validator) { $this->validators[] = $validator; } public function hasValidators() { return count($this->validators) > 0; } public function getValidators() { return $this->validators; } /** * Get the native PHP type of this column. * * @return string A string specifying the native PHP type. */ public function getType() { return $this->type; } /** * Get the Creole type of this column. * * @return string A string specifying the native PHP type. */ public function getCreoleType() { return $this->creoleType; } /** * Get the size of this column. * * @return int An int specifying the size. */ public function getSize() { return $this->size; } /** * Is this column a primary key? * * @return boolean True if column is a primary key. */ public function isPrimaryKey() { return $this->pk; } /** * Is null value allowed ? * * @return boolean True if column may be null. */ public function isNotNull() { return ($this->notNull || $this->isPrimaryKey()); } /** * Is this column a foreign key? * * @return boolean True if column is a foreign key. */ public function isForeignKey() { if ($this->relatedTableName) { return true; } else { return false; } } /** * Get the table.column that this column is related to. * * @return string A String with the full name for the related column. */ public function getRelatedName() { return $this->relatedTableName . "." . $this->relatedColumnName; } /** * Get the table name that this column is related to. * * @return string A String with the name for the related table. */ public function getRelatedTableName() { return $this->relatedTableName; } /** * Get the column name that this column is related to. * * @return string A String with the name for the related column. */ public function getRelatedColumnName() { return $this->relatedColumnName; } }