<?php
/**
* @package DATA
*/
/**
* An exception thrown when an sql type constraint fails to apply to a value.
*/
abstract class DATA_SQLTypeConstraintFailed extends DATA_Exception {
/**
* The table name where the constraint occured.
* @var string
*/
private $table;
/**
* The field name where the constraint occured.
* @var string
*/
private $field;
/**
* Default constructor.
*
* @param string $message Message of exception.
* @param int $code Code of exception.
*/
public function __construct($message = null, $code = 0) {
parent::__construct($message, $code);
$this->table = null;
$this->field = null;
}
/**
* Gets the table name where the constraint occured.
*
* @return string The table name where the constraint occured.
*/
final public function getTable() {
return $this->table;
}
/**
* Gets the field name where the constraint occured.
*
* @return string The field name where the constraint occured.
*/
final public function getField() {
return $this->field;
}
/**
* Sets the table name where the constraint occured.
*
* @param string $table The table name where the constraint occured.
*/
final public function setTable($table) {
$this->table = $table;
}
/**
* Sets the field name where the constraint occured.
*
* @param string $field The field name where the constraint occured.
*/
final public function setField($field) {
$this->field = $field;
}
public function __toString() {
$oldMessage = $this->message;
if ($this->table && $this->field) {
$this->message = "[{$this->table}.{$this->field}] " . $this->message;
}
$str = parent::__toString();
$this->message = $oldMessage;
return $str;
}
}
?>
|