<?php
 
/**
 
 * @package DATA
 
 */
 
 
/**
 
 * A concrete factory for inboxing strings into varchar fields.
 
 */
 
class DATA_SQLVarcharFactory extends DATA_SQLCharFactory {
 
    /**
 
     * Inboxes a value.
 
     * 
 
     * Throws {@link DATA_StringTooLarge}.
 
     * 
 
     * @param mixed $value The value.
 
     * @return DATA_SQLVarchar Inboxed value.
 
     */
 
    public function inbox($value) {
 
        if ($value instanceof DATA_SQLVarchar) {
 
            if ($this->nullable == $value->isNullable()
 
             && $value->getSize() == $this->size) {
 
                return clone $value;
 
            }
 
        }
 
        if ($value instanceof DATA_SQLType) {
 
            $value = $value->outbox();
 
        }
 
        if (!is_null($value)) {
 
            $value = (string)$value;
 
        }
 
        return new DATA_SQLVarchar($this->nullable, $this->size, $value);
 
    }
 
}
 
?>
 
 
 |