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)); } }