public function create(string $resourceClass) : ResourceMetadata
{
$resourceMetadata = $this->decorated->create($resourceClass);
$reflectionClass = new \ReflectionClass($resourceClass);
$isAbstract = $reflectionClass->isAbstract();
if (null === $resourceMetadata->getCollectionOperations()) {
$resourceMetadata = $resourceMetadata->withCollectionOperations($this->createOperations($isAbstract ? ['GET'] : ['GET', 'POST']));
}
if (null === $resourceMetadata->getItemOperations()) {
$resourceMetadata = $resourceMetadata->withItemOperations($this->createOperations($isAbstract ? ['GET', 'DELETE'] : ['GET', 'PUT', 'DELETE']));
}
return $resourceMetadata;
}