From 96119d0e04d4d794403c6fdabf7f8de2d20836d1 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 16 Oct 2026 17:01:47 +0200 Subject: [PATCH] feat: allow passing a cache entry to getMetadataForNode Signed-off-by: Robin Appelman --- lib/private/FilesMetadata/FilesMetadataManager.php | 12 ++++++++---- lib/public/FilesMetadata/IFilesMetadataManager.php | 5 +++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/private/FilesMetadata/FilesMetadataManager.php b/lib/private/FilesMetadata/FilesMetadataManager.php index 9ef46366f2de9..50b081894d106 100644 --- a/lib/private/FilesMetadata/FilesMetadataManager.php +++ b/lib/private/FilesMetadata/FilesMetadataManager.php @@ -20,6 +20,7 @@ use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\EventDispatcher\IEventDispatcher; use OCP\Files\Cache\CacheEntriesRemovedEvent; +use OCP\Files\Cache\ICacheEntry; use OCP\Files\Events\Node\NodeWrittenEvent; use OCP\Files\InvalidPathException; use OCP\Files\Node; @@ -139,10 +140,13 @@ public function getMetadata(int $fileId, bool $generate = false, ?int $storageId } #[\Override] - public function getMetadataForNode(Node $node, bool $generate = false): IFilesMetadata { - /** @var FilesMetadata $metadata */ - $metadata = $this->getMetadata($node->getId(), $generate, $node->getMountPoint()->getNumericStorageId()); - return $metadata; + public function getMetadataForNode(Node|ICacheEntry $node, bool $generate = false): IFilesMetadata { + if ($node instanceof Node) { + $storageId = $node->getData()->getStorageId(); + } else { + $storageId = $node->getStorageId(); + } + return $this->getMetadata($node->getId(), $generate, $storageId); } /** diff --git a/lib/public/FilesMetadata/IFilesMetadataManager.php b/lib/public/FilesMetadata/IFilesMetadataManager.php index ce8a3e73e0ee6..065b5b63a4961 100644 --- a/lib/public/FilesMetadata/IFilesMetadataManager.php +++ b/lib/public/FilesMetadata/IFilesMetadataManager.php @@ -10,6 +10,7 @@ use OCP\AppFramework\Attribute\Consumable; use OCP\DB\QueryBuilder\IQueryBuilder; +use OCP\Files\Cache\ICacheEntry; use OCP\Files\Node; use OCP\FilesMetadata\Exceptions\FilesMetadataException; use OCP\FilesMetadata\Exceptions\FilesMetadataNotFoundException; @@ -71,14 +72,14 @@ public function getMetadata(int $fileId, bool $generate = false): IFilesMetadata /** * returns metadata of a file id * - * @param Node $node file id + * @param Node|ICacheEntry $node file id * @param boolean $generate Generate if metadata does not exist * * @return IFilesMetadata * @throws FilesMetadataNotFoundException if not found * @since 36.0.0 */ - public function getMetadataForNode(Node $node, bool $generate = false): IFilesMetadata; + public function getMetadataForNode(Node|ICacheEntry $node, bool $generate = false): IFilesMetadata; /** * returns metadata of multiple file ids