/**
  * @param OptionsResolver $resolver
  * @throws \Symfony\Component\OptionsResolver\Exception\AccessException
  * @throws \Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException
  * @throws \UnexpectedValueException
  */
 public function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setRequired(['resource_type']);
     $resolver->setDefaults(['class' => null, 'repository' => null, 'compound' => false, 'error_bubbling' => false]);
     $resolver->setNormalizer('resource_type', function (Options $options, $value) {
         return $this->resourceManager->getResourceTypeConfiguration($value);
     });
     $resolver->setNormalizer('class', function (Options $options, $value) {
         $resourceType = $options['resource_type'];
         if (!$value && $resourceType instanceof ResourceTypeConfiguration) {
             return $resourceType->getEntity();
         }
         return $value;
     });
     $resolver->setNormalizer('repository', function (Options $options, $value) {
         if ($value) {
             if ($value instanceof ObjectRepository) {
                 return $value;
             }
             throw new \UnexpectedValueException("The 'repository' option must be an EntityRepository");
         }
         $class = $options['class'];
         if (!$class) {
             throw new \UnexpectedValueException("Missing option 'class' or 'repository'");
         }
         return $this->doctrine->getRepository($class);
     });
 }