refactor: Use Override annotation in new preview code

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
This commit is contained in:
Carl Schwan 2025-09-26 14:22:38 +02:00
parent 58023782b6
commit bd001c9524
6 changed files with 35 additions and 33 deletions

View file

@ -24,6 +24,7 @@ use OCP\Files\NotFoundException;
use OCP\Files\SimpleFS\ISimpleFolder;
use OCP\IAppConfig;
use OCP\IDBConnection;
use Override;
class MovePreviewJob extends TimedJob {
private IAppData $appData;
@ -44,6 +45,7 @@ class MovePreviewJob extends TimedJob {
$this->setInterval(24 * 60 * 60);
}
#[Override]
protected function run(mixed $argument): void {
if ($this->appConfig->getValueBool('core', 'previewMovedDone')) {
return;

View file

@ -16,6 +16,7 @@ use OCP\Files\NotPermittedException;
use OCP\IAvatarManager;
use OCP\IDBConnection;
use OCP\IUserManager;
use Override;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
@ -32,6 +33,7 @@ class ResetRenderedTexts extends Command {
parent::__construct();
}
#[Override]
protected function configure(): void {
$this
->setName('preview:reset-rendered-texts')
@ -39,6 +41,7 @@ class ResetRenderedTexts extends Command {
->addOption('dry', 'd', InputOption::VALUE_NONE, 'Dry mode - will not delete any files - in combination with the verbose mode one could check the operations.');
}
#[Override]
protected function execute(InputInterface $input, OutputInterface $output): int {
$dryMode = $input->getOption('dry');

View file

@ -19,6 +19,7 @@ use OCP\DB\Exception;
use OCP\IAppConfig;
use OCP\IConfig;
use OCP\IDBConnection;
use Override;
use RecursiveDirectoryIterator;
use RecursiveIteratorIterator;
@ -37,6 +38,7 @@ class LocalPreviewStorage implements IPreviewStorage {
$this->rootFolder = $this->config->getSystemValue('datadirectory', OC::$SERVERROOT . '/data');
}
#[Override]
public function writePreview(Preview $preview, mixed $stream): false|int {
$previewPath = $this->constructPath($preview);
if (!$this->createParentFiles($previewPath)) {
@ -45,10 +47,12 @@ class LocalPreviewStorage implements IPreviewStorage {
return file_put_contents($previewPath, $stream);
}
#[Override]
public function readPreview(Preview $preview): mixed {
return @fopen($this->constructPath($preview), 'r');
}
#[Override]
public function deletePreview(Preview $preview): void {
@unlink($this->constructPath($preview));
}
@ -67,6 +71,7 @@ class LocalPreviewStorage implements IPreviewStorage {
return is_dir($dirname);
}
#[Override]
public function migratePreview(Preview $preview, SimpleFile $file): void {
// legacy flat directory
$sourcePath = $this->getPreviewRootFolder() . $preview->getFileId() . '/' . $preview->getName();
@ -87,6 +92,7 @@ class LocalPreviewStorage implements IPreviewStorage {
}
}
#[Override]
public function scan(): int {
$checkForFileCache = !$this->appConfig->getValueBool('core', 'previewMovedDone');

View file

@ -17,6 +17,7 @@ use OC\Preview\Db\Preview;
use OC\Preview\Db\PreviewMapper;
use OCP\Files\ObjectStore\IObjectStore;
use OCP\IConfig;
use Override;
/**
* @psalm-import-type ObjectStoreConfig from PrimaryObjectStoreConfig
@ -39,6 +40,7 @@ class ObjectStorePreviewStorage implements IPreviewStorage {
$this->isMultibucketPreviewDistributionEnabled = $config->getSystemValueBool('objectstore.multibucket.preview-distribution');
}
#[Override]
public function writePreview(Preview $preview, mixed $stream): false|int {
if (!is_resource($stream)) {
$fh = fopen('php://temp', 'w+');
@ -63,6 +65,7 @@ class ObjectStorePreviewStorage implements IPreviewStorage {
return $size;
}
#[Override]
public function readPreview(Preview $preview): mixed {
[
'objectPrefix' => $objectPrefix,
@ -71,6 +74,7 @@ class ObjectStorePreviewStorage implements IPreviewStorage {
return $store->readObject($this->constructUrn($objectPrefix, $preview->getId()));
}
#[Override]
public function deletePreview(Preview $preview): void {
[
'objectPrefix' => $objectPrefix,
@ -79,6 +83,7 @@ class ObjectStorePreviewStorage implements IPreviewStorage {
$store->deleteObject($this->constructUrn($objectPrefix, $preview->getId()));
}
#[Override]
public function migratePreview(Preview $preview, SimpleFile $file): void {
// Just set the Preview::bucket and Preview::objectStore
$this->getObjectStoreForPreview($preview, true);
@ -150,6 +155,7 @@ class ObjectStorePreviewStorage implements IPreviewStorage {
}
}
#[Override]
public function scan(): int {
return 0;
}

View file

@ -13,6 +13,7 @@ namespace OC\Preview\Storage;
use OC\Preview\Db\Preview;
use OC\Preview\Db\PreviewMapper;
use OCP\Files\SimpleFS\ISimpleFile;
use Override;
class PreviewFile implements ISimpleFile {
public function __construct(
@ -22,80 +23,58 @@ class PreviewFile implements ISimpleFile {
) {
}
/**
* @inheritDoc
*/
#[Override]
public function getName(): string {
return $this->preview->getName();
}
/**
* @inheritDoc
*/
#[Override]
public function getSize(): int|float {
return $this->preview->getSize();
}
/**
* @inheritDoc
*/
#[Override]
public function getETag(): string {
return $this->preview->getEtag();
}
/**
* @inheritDoc
*/
#[Override]
public function getMTime(): int {
return $this->preview->getMtime();
}
/**
* @inheritDoc
*/
#[Override]
public function getContent(): string {
$stream = $this->storage->readPreview($this->preview);
return stream_get_contents($stream);
}
/**
* @inheritDoc
*/
#[Override]
public function putContent($data): void {
}
/**
* @inheritDoc
*/
#[Override]
public function delete(): void {
$this->storage->deletePreview($this->preview);
$this->previewMapper->delete($this->preview);
}
/**
* @inheritDoc
*/
#[Override]
public function getMimeType(): string {
return $this->preview->getMimetypeValue();
}
/**
* @inheritDoc
*/
#[Override]
public function getExtension(): string {
return $this->preview->getExtension();
}
/**
* @inheritDoc
*/
#[Override]
public function read() {
return $this->storage->readPreview($this->preview);
}
/**
* @inheritDoc
*/
#[Override]
public function write() {
return false;
}

View file

@ -16,6 +16,7 @@ use OC\Preview\Db\Preview;
use OC\Preview\Db\PreviewMapper;
use OCP\IConfig;
use OCP\Server;
use Override;
class StorageFactory implements IPreviewStorage {
private ?IPreviewStorage $backend = null;
@ -27,14 +28,17 @@ class StorageFactory implements IPreviewStorage {
) {
}
#[Override]
public function writePreview(Preview $preview, mixed $stream): false|int {
return $this->getBackend()->writePreview($preview, $stream);
}
#[Override]
public function readPreview(Preview $preview): mixed {
return $this->getBackend()->readPreview($preview);
}
#[Override]
public function deletePreview(Preview $preview): void {
$this->getBackend()->deletePreview($preview);
}
@ -53,10 +57,12 @@ class StorageFactory implements IPreviewStorage {
return $this->backend;
}
#[Override]
public function migratePreview(Preview $preview, SimpleFile $file): void {
$this->getBackend()->migratePreview($preview, $file);
}
#[Override]
public function scan(): int {
return $this->getBackend()->scan();
}