From 885b7904a29218cd097182c1f1a751fa082a31b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= Date: Thu, 17 Feb 2022 18:09:14 +0100 Subject: [PATCH] Avoid passing both $importSource and $version while version comes from source MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Côme Chilliet --- lib/public/UserMigration/IImportSource.php | 9 +++++++++ lib/public/UserMigration/IMigrator.php | 9 +++------ .../UserMigration/TMigratorBasicVersionHandling.php | 4 ++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/lib/public/UserMigration/IImportSource.php b/lib/public/UserMigration/IImportSource.php index 53680010df5..f3051b097e0 100644 --- a/lib/public/UserMigration/IImportSource.php +++ b/lib/public/UserMigration/IImportSource.php @@ -70,6 +70,15 @@ interface IImportSource { */ public function getMigratorVersions(): array; + /** + * @return ?int Version for this migrator from the export archive. Null means migrator missing. + * + * @param class-string $migrator + * + * @since 24.0.0 + */ + public function getMigratorVersion(string $migrator): ?int; + /** * Called after import is complete * diff --git a/lib/public/UserMigration/IMigrator.php b/lib/public/UserMigration/IMigrator.php index 5a09bf4246b..4ff09167f5e 100644 --- a/lib/public/UserMigration/IMigrator.php +++ b/lib/public/UserMigration/IMigrator.php @@ -54,8 +54,7 @@ interface IMigrator { public function import( IUser $user, IImportSource $importSource, - OutputInterface $output, - ?int $version + OutputInterface $output ): void; /** @@ -67,13 +66,11 @@ interface IMigrator { /** * Checks whether it is able to import a version of the export format for this migrator - * - * @param ?int $version Version stored in the import source for this migrator. Null means this migrator was not listed. + * Use $importSource->getMigratorVersion(static::class) to get the version from the archive * * @since 24.0.0 */ public function canImport( - IImportSource $importSource, - ?int $version + IImportSource $importSource ): bool; } diff --git a/lib/public/UserMigration/TMigratorBasicVersionHandling.php b/lib/public/UserMigration/TMigratorBasicVersionHandling.php index 6b695ec45d9..a1d408665a6 100644 --- a/lib/public/UserMigration/TMigratorBasicVersionHandling.php +++ b/lib/public/UserMigration/TMigratorBasicVersionHandling.php @@ -45,9 +45,9 @@ trait TMigratorBasicVersionHandling { * {@inheritDoc} */ public function canImport( - IImportSource $importSource, - ?int $version + IImportSource $importSource ): bool { + $version = $importSource->getMigratorVersion(static::class); if ($version === null) { return !$this->mandatory; }