private function createMetadata(ApiResource $annotation, ResourceMetadata $parentResourceMetadata = null) : ResourceMetadata
{
if (!$parentResourceMetadata) {
return new ResourceMetadata($annotation->shortName, $annotation->description, $annotation->iri, $annotation->itemOperations, $annotation->collectionOperations, $annotation->attributes);
}
$resourceMetadata = $parentResourceMetadata;
foreach (['shortName', 'description', 'iri', 'itemOperations', 'collectionOperations', 'attributes'] as $property) {
$resourceMetadata = $this->createWith($resourceMetadata, $property, $annotation->{$property});
}
return $resourceMetadata;
}