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