private function getPropertyMetadata(array $metadata) : PropertyMetadata
{
$propertyMetadata = new PropertyMetadata();
foreach ($metadata as $propertyName => $propertyValue) {
$propertyMetadata = $propertyMetadata->{'with' . ucfirst($propertyName)}($propertyValue);
}
return $propertyMetadata;
}