protected function setDiscriminator(DoctrineClassMetadata $doctrineMetadata, ClassMetadata $classMetadata)
 {
     /** @var \Doctrine\ORM\Mapping\ClassMetadata $doctrineMetadata */
     if (empty($classMetadata->discriminatorMap) && !$classMetadata->discriminatorDisabled && !empty($doctrineMetadata->discriminatorMap) && $doctrineMetadata->isRootEntity()) {
         $classMetadata->setDiscriminator($doctrineMetadata->discriminatorColumn['name'], $doctrineMetadata->discriminatorMap, []);
     }
 }
 protected static function doProcess($annotation, ClassMetadata $metadata)
 {
     if (is_string($annotation->groups)) {
         $annotation->groups = explode(',', $annotation->groups);
     }
     if ($annotation->disabled) {
         $metadata->discriminatorDisabled = true;
     } else {
         $metadata->setDiscriminator($annotation->field, $annotation->map, array_map('trim', (array) $annotation->groups));
     }
 }