public function scheduleForUpsert(ClassMetadata $class, object $document) : void
    {
        $oid = spl_object_hash($document);

        if ($class->isEmbeddedDocument) {
            throw new InvalidArgumentException('Embedded document can not be scheduled for upsert.');
        }
        if (isset($this->documentUpdates[$oid])) {
            throw new InvalidArgumentException('Dirty document can not be scheduled for upsert.');
        }
        if (isset($this->documentDeletions[$oid])) {
            throw new InvalidArgumentException('Removed document can not be scheduled for upsert.');
        }
        if (isset($this->documentUpserts[$oid])) {
            throw new InvalidArgumentException('Document can not be scheduled for upsert twice.');
        }

        $this->documentUpserts[$oid]     = $document;
        $this->documentIdentifiers[$oid] = $class->getIdentifierValue($document);
        $this->addToIdentityMap($document);
    }
public function scheduleForUpsert(ClassMetadata $class, object $document) : void
    {
        $oid = spl_object_hash($document);

        if ($class->isEmbeddedDocument) {
            throw new InvalidArgumentException('Embedded document can not be scheduled for upsert.');
        }
        if (isset($this->documentUpdates[$oid])) {
            throw new InvalidArgumentException('Dirty document can not be scheduled for upsert.');
        }
        if (isset($this->documentDeletions[$oid])) {
            throw new InvalidArgumentException('Removed document can not be scheduled for upsert.');
        }
        if (isset($this->documentUpserts[$oid])) {
            throw new InvalidArgumentException('Document can not be scheduled for upsert twice.');
        }

        $this->documentUpserts[$oid]     = $document;
        $this->documentIdentifiers[$oid] = $class->getIdentifierValue($document);
        $this->addToIdentityMap($document);
    }
public function scheduleForUpsert ( ClassMetadata $ class , object $ document ) : void { $ oid = spl_object_hash ( $ document ) ; if ( $ class -> isEmbeddedDocument ) { throw new InvalidArgumentException ( 'Embedded document can not be scheduled for upsert.' ) ; } if ( isset ( $ this -> documentUpdates [ $ oid ] ) ) { throw new InvalidArgumentException ( 'Dirty document can not be scheduled for upsert.' ) ; } if ( isset ( $ this -> documentDeletions [ $ oid ] ) ) { throw new InvalidArgumentException ( 'Removed document can not be scheduled for upsert.' ) ; } if ( isset ( $ this -> documentUpserts [ $ oid ] ) ) { throw new InvalidArgumentException ( 'Document can not be scheduled for upsert twice.' ) ; } $ this -> documentUpserts [ $ oid ] = $ document ; $ this -> documentIdentifiers [ $ oid ] = $ class -> getIdentifierValue ( $ document ) ; $ this -> addToIdentityMap ( $ document ) ; }
Schedules a document for upsert into the database and adds it to the
identity map

@internal

@throws InvalidArgumentException
Schedules a document for upsert into the database and adds it to the identity map