getStoredObject() : $from; $fromVersion = match ($storedObject->hasKeptBeforeConversionVersion() && $onlyLastKeptBeforeConversionVersion) { true => $from->getLastKeptBeforeConversionVersion(), false => $storedObject->getCurrentVersion(), }; if (null === $fromVersion) { throw new \UnexpectedValueException('could not find a version to restore'); } $oldContent = $this->storedObjectManager->read($fromVersion); $storedObject = new StoredObject(); $newVersion = $this->storedObjectManager->write($storedObject, $oldContent, $fromVersion->getType()); $newVersion->setCreatedFrom($fromVersion); $this->logger->info('[StoredObjectDuplicate] Duplicated stored object from a version of a previous stored object', [ 'from_stored_object_uuid' => $fromVersion->getStoredObject()->getUuid(), 'to_stored_object_uuid' => $storedObject->getUuid(), 'old_version_id' => $fromVersion->getId(), 'old_version_version' => $fromVersion->getVersion(), 'new_version_id' => $newVersion->getVersion(), ]); return $storedObject; } }