Location: PHPKode > scripts > DATA > data/DATA/MySQL5/SQLDateFactory.php
<?php
/**
 * @package DATA
 */

/**
 * A concrete factory for inboxing string with mysql date format into date objects.
 */
class DATA_MySQL5_SQLDateFactory extends DATA_SQLTypeFactory {
    /**
     * Flags the type to nullable or not nullable.
     * @var boolean
     */
    private $nullable;
    
    /**
     * Constructor.
     * 
     * @param boolean $nullable True if the type is nullable.
     */
    public function __construct($nullable) {
        $this->nullable = $nullable;
    }
    
    /**
     * Inboxes a value.
     * 
     * Throws {@link DATA_InvalidDate}.
     * 
     * @param mixed $value The value.
     * @return DATA_SQLDate Inboxed value.
     */
    public function inbox($value) {
        if ($value instanceof DATA_SQLDate) {
            if ($this->nullable == $value->isNullable()) {
                return clone $value;
            }
        }
        if ($value instanceof DATA_SQLType) {
            $value = $value->outbox();
        }
        if ($value === null) {
            return new DATA_SQLDate($this->nullable);
        }
        if (!preg_match('/^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/', $value)) {
            throw new DATA_InvalidDate($value);
        }
        list($year, $month, $day) = explode('-', $value);
        return new DATA_SQLDate($this->nullable, $year, $month, $day);
    }
}
?>
Return current item: DATA