public function computeSingleDocumentChangeSet($document)
{
$state = $this->getDocumentState($document);
if ($state !== self::STATE_MANAGED && $state !== self::STATE_REMOVED) {
throw new InvalidArgumentException('Document has to be managed for single computation ' . self::objToStr($document, $this->dm));
}
foreach ($this->scheduledInserts as $insertedDocument) {
$class = $this->dm->getClassMetadata(get_class($insertedDocument));
$this->computeChangeSet($class, $insertedDocument);
}
// Ignore uninitialized proxy objects
if ($document instanceof Proxy && !$document->__isInitialized()) {
return;
}
$oid = spl_object_hash($document);
if (!isset($this->scheduledInserts[$oid])) {
$class = $this->dm->getClassMetadata(get_class($document));
$this->computeChangeSet($class, $document);
}
}