protected function hydrateValue($value, PropertyAnnotation $annotation)
{
if ($annotation->type) {
try {
$value = $this->castProperty($annotation, $value);
} catch (\Exception $e) {
if ($annotation->isNullable()) {
$value = null;
} else {
throw $e;
}
}
}
return $value;
}