/**
* @param \Doctrine\OXM\Mapping\ClassMetadata $class
* @param $xmlEntity
* @return void
*/
private function persistNew($class, $xmlEntity)
{
$oid = spl_object_hash($xmlEntity);
if (isset($class->lifecycleCallbacks[Events::prePersist])) {
$class->invokeLifecycleCallbacks(Events::prePersist, $xmlEntity);
}
if ($this->evm->hasListeners(Events::prePersist)) {
$this->evm->dispatchEvent(Events::prePersist, new Event\LifecycleEventArgs($xmlEntity, $this->xem));
}
$idGen = $class->idGenerator;
if (!$idGen->isPostInsertGenerator()) {
$idValue = $idGen->generate($this->xem, $xmlEntity);
if (!$idGen instanceof \Doctrine\OXM\Id\AssignedGenerator) {
$this->entityIdentifiers[$oid] = array($class->identifier => $idValue);
$class->setIdentifierValue($xmlEntity, $this->entityIdentifiers[$oid]);
} else {
$this->entityIdentifiers[$oid] = $idValue;
}
}
$this->entityStates[$oid] = self::STATE_MANAGED;
$this->scheduleForInsert($xmlEntity);
}