From bd001c9524ffc0ffd81a0b62571678784af00148 Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Fri, 26 Sep 2025 14:22:38 +0200 Subject: [PATCH] refactor: Use Override annotation in new preview code Signed-off-by: Carl Schwan --- core/BackgroundJobs/MovePreviewJob.php | 2 + core/Command/Preview/ResetRenderedTexts.php | 3 ++ .../Preview/Storage/LocalPreviewStorage.php | 6 +++ .../Storage/ObjectStorePreviewStorage.php | 6 +++ lib/private/Preview/Storage/PreviewFile.php | 45 +++++-------------- .../Preview/Storage/StorageFactory.php | 6 +++ 6 files changed, 35 insertions(+), 33 deletions(-) diff --git a/core/BackgroundJobs/MovePreviewJob.php b/core/BackgroundJobs/MovePreviewJob.php index 82acea82c7a..0eaf409e433 100644 --- a/core/BackgroundJobs/MovePreviewJob.php +++ b/core/BackgroundJobs/MovePreviewJob.php @@ -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; diff --git a/core/Command/Preview/ResetRenderedTexts.php b/core/Command/Preview/ResetRenderedTexts.php index b80f0f6ffce..6ec26ad6ac3 100644 --- a/core/Command/Preview/ResetRenderedTexts.php +++ b/core/Command/Preview/ResetRenderedTexts.php @@ -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'); diff --git a/lib/private/Preview/Storage/LocalPreviewStorage.php b/lib/private/Preview/Storage/LocalPreviewStorage.php index 9af1b594175..8d85897115b 100644 --- a/lib/private/Preview/Storage/LocalPreviewStorage.php +++ b/lib/private/Preview/Storage/LocalPreviewStorage.php @@ -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'); diff --git a/lib/private/Preview/Storage/ObjectStorePreviewStorage.php b/lib/private/Preview/Storage/ObjectStorePreviewStorage.php index faa63763779..88470802667 100644 --- a/lib/private/Preview/Storage/ObjectStorePreviewStorage.php +++ b/lib/private/Preview/Storage/ObjectStorePreviewStorage.php @@ -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; } diff --git a/lib/private/Preview/Storage/PreviewFile.php b/lib/private/Preview/Storage/PreviewFile.php index c9381ce933c..8c9852673cc 100644 --- a/lib/private/Preview/Storage/PreviewFile.php +++ b/lib/private/Preview/Storage/PreviewFile.php @@ -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; } diff --git a/lib/private/Preview/Storage/StorageFactory.php b/lib/private/Preview/Storage/StorageFactory.php index 3438534d07e..5d1d130b300 100644 --- a/lib/private/Preview/Storage/StorageFactory.php +++ b/lib/private/Preview/Storage/StorageFactory.php @@ -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(); }