diff options
Diffstat (limited to 'lib/private/Metadata/IMetadataProvider.php')
-rw-r--r-- | lib/private/Metadata/IMetadataProvider.php | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/lib/private/Metadata/IMetadataProvider.php b/lib/private/Metadata/IMetadataProvider.php new file mode 100644 index 00000000000..7cbe102a538 --- /dev/null +++ b/lib/private/Metadata/IMetadataProvider.php @@ -0,0 +1,41 @@ +<?php + +namespace OC\Metadata; + +use OCP\Files\File; + +/** + * Interface for the metadata providers. If you want an application to provide + * some metadata, you can use this to store them. + */ +interface IMetadataProvider { + /** + * The list of groups that this metadata provider is able to provide. + * + * @return string[] + */ + public static function groupsProvided(): array; + + /** + * Check if the metadata provider is available. A metadata provider might be + * unavailable due to a php extension not being installed. + */ + public static function isAvailable(): bool; + + /** + * Get the mimetypes supported as a regex. + */ + public static function getMimetypesSupported(): string; + + /** + * Execute the extraction on the specified file. The metadata should be + * grouped by metadata + * + * Each group should be json serializable and the string representation + * shouldn't be longer than 4000 characters. + * + * @param File $file The file to extract the metadata from + * @param array<string, FileMetadata> An array containing all the metadata fetched. + */ + public function execute(File $file): array; +} |