private function scheduleCollectionOwner(PersistentCollectionInterface $coll)
{
$document = $this->getOwningDocument($coll->getOwner());
$this->hasScheduledCollections[spl_object_hash($document)][spl_object_hash($coll)] = $coll;
if ($document !== $coll->getOwner()) {
$parent = $coll->getOwner();
while (null !== ($parentAssoc = $this->getParentAssociation($parent))) {
list($mapping, $parent, ) = $parentAssoc;
}
if (CollectionHelper::isAtomic($mapping['strategy'])) {
$class = $this->dm->getClassMetadata(get_class($document));
$atomicCollection = $class->getFieldValue($document, $mapping['fieldName']);
$this->scheduleCollectionUpdate($atomicCollection);
$this->unscheduleCollectionDeletion($coll);
$this->unscheduleCollectionUpdate($coll);
}
}
if (!$this->isDocumentScheduled($document)) {
$this->scheduleForUpdate($document);
}
}