<?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;
 
    }
 
}
 
?>
 
 
 |