public function offsetSet($offset, $value)
{
if (null !== $offset) {
$setter = 'set' . ucfirst($offset);
if (is_array($value) && is_array(current($value))) {
if (is_callable(array($this, $setter . 'Array'))) {
$setter .= 'Array';
}
}
$this->{$setter}($value);
}
}