3 * Zend Framework (http://framework.zend.com/)
5 * @link http://github.com/zendframework/zf2 for the canonical source repository
6 * @copyright Copyright (c) 2005-2013 Zend Technologies USA Inc. (http://www.zend.com)
7 * @license http://framework.zend.com/license/new-bsd New BSD License
10 namespace Zend\Db\Metadata\
Object;
12 class ConstraintObject
18 protected $name = null;
24 protected $tableName = null;
30 protected $schemaName = null;
33 * One of "PRIMARY KEY", "UNIQUE", "FOREIGN KEY", or "CHECK"
37 protected $type = null;
44 protected $columns = array();
51 protected $referencedTableSchema;
58 protected $referencedTableName;
65 protected $referencedColumns;
72 protected $matchOption;
79 protected $updateRule;
86 protected $deleteRule;
93 protected $checkClause;
99 * @param string $tableName
100 * @param string $schemaName
102 public function __construct($name, $tableName, $schemaName = null)
104 $this->setName($name);
105 $this->setTableName($tableName);
106 $this->setSchemaName($schemaName);
112 * @param string $name
114 public function setName($name)
124 public function getName()
132 * @param string $schemaName
134 public function setSchemaName($schemaName)
136 $this->schemaName
= $schemaName;
144 public function getSchemaName()
146 return $this->schemaName
;
154 public function getTableName()
156 return $this->tableName
;
162 * @param string $tableName
163 * @return ConstraintObject
165 public function setTableName($tableName)
167 $this->tableName
= $tableName;
174 * @param string $type
176 public function setType($type)
186 public function getType()
191 public function hasColumns()
193 return (!empty($this->columns
));
201 public function getColumns()
203 return $this->columns
;
209 * @param string[] $columns
210 * @return ConstraintObject
212 public function setColumns(array $columns)
214 $this->columns
= $columns;
219 * Get Referenced Table Schema.
223 public function getReferencedTableSchema()
225 return $this->referencedTableSchema
;
229 * Set Referenced Table Schema.
231 * @param string $referencedTableSchema
232 * @return ConstraintObject
234 public function setReferencedTableSchema($referencedTableSchema)
236 $this->referencedTableSchema
= $referencedTableSchema;
241 * Get Referenced Table Name.
245 public function getReferencedTableName()
247 return $this->referencedTableName
;
251 * Set Referenced Table Name.
253 * @param string $referencedTableName
254 * @return ConstraintObject
256 public function setReferencedTableName($referencedTableName)
258 $this->referencedTableName
= $referencedTableName;
263 * Get Referenced Columns.
267 public function getReferencedColumns()
269 return $this->referencedColumns
;
273 * Set Referenced Columns.
275 * @param string[] $referencedColumns
276 * @return ConstraintObject
278 public function setReferencedColumns(array $referencedColumns)
280 $this->referencedColumns
= $referencedColumns;
289 public function getMatchOption()
291 return $this->matchOption
;
297 * @param string $matchOption
298 * @return ConstraintObject
300 public function setMatchOption($matchOption)
302 $this->matchOption
= $matchOption;
311 public function getUpdateRule()
313 return $this->updateRule
;
319 * @param string $updateRule
320 * @return ConstraintObject
322 public function setUpdateRule($updateRule)
324 $this->updateRule
= $updateRule;
333 public function getDeleteRule()
335 return $this->deleteRule
;
341 * @param string $deleteRule
342 * @return ConstraintObject
344 public function setDeleteRule($deleteRule)
346 $this->deleteRule
= $deleteRule;
355 public function getCheckClause()
357 return $this->checkClause
;
363 * @param string $checkClause
364 * @return ConstraintObject
366 public function setCheckClause($checkClause)
368 $this->checkClause
= $checkClause;
377 public function isPrimaryKey()
379 return ('PRIMARY KEY' == $this->type
);
387 public function isUnique()
389 return ('UNIQUE' == $this->type
);
397 public function isForeignKey()
399 return ('FOREIGN KEY' == $this->type
);
407 public function isCheck()
409 return ('CHECK' == $this->type
);