/**
* @param object $embeddeDoc
* @return bool
*/
private function isPartOfAtomicUpdate($embeddeDoc)
{
$isInDirtyCollection = false;
while (null !== ($parentAssoc = $this->uow->getParentAssociation($embeddeDoc))) {
list($mapping, $embeddeDoc, ) = $parentAssoc;
if ($mapping['association'] === ClassMetadata::EMBED_MANY) {
$classMetadata = $this->dm->getClassMetadata(get_class($embeddeDoc));
$parentColl = $classMetadata->getFieldValue($embeddeDoc, $mapping['fieldName']);
$isInDirtyCollection |= $parentColl->isDirty();
}
}
return isset($mapping['association']) && $mapping['association'] === ClassMetadata::EMBED_MANY && ($mapping['strategy'] === 'atomicSet' || $mapping['strategy'] === 'atomicSetArray') && $isInDirtyCollection;
}