/** * @SuppressWarnings(PHPMD.LongVariable) * @param PreLoadEventArgs $eventArgs */ public function preLoad(PreLoadEventArgs $eventArgs) { $documentManager = $eventArgs->getDocumentManager(); $document = $eventArgs->getDocument(); $metadata = $documentManager->getClassMetadata(get_class($document)); foreach ($metadata->associationMappings as $field => $mapping) { if (isset($mapping['embedded']) && !!$mapping['embedded']) { if (isset($mapping['discriminatorField'])) { $this->preLoadEmbeddedWithDiscriminator($eventArgs, $field, $mapping); } else { $this->preLoadEmbeddedWithoutDiscriminator($eventArgs, $field, $mapping); } } } }