Class PluginInstallUtils.StagingCatalogue

java.lang.Object
com.ultikits.ultitools.utils.PluginInstallUtils.StagingCatalogue
All Implemented Interfaces:
ModuleFileTransactions.Catalogue, ModuleFileTransactions.Downloader
Enclosing class:
PluginInstallUtils

static final class PluginInstallUtils.StagingCatalogue extends Object implements ModuleFileTransactions.Catalogue, ModuleFileTransactions.Downloader
The catalogue and downloader of one staging call (plan 22-26 fix round).

The catalogue contract makes a download.url an opaque address: it must not be built or parsed, and its shape may change inside a contract version. So the download is verified against the version this staging has just read through the contract's version route (the module's identifier and the version, CatalogueClient.version(String, String)), which is also where its link came from, and never against a route derived from the URL. A link this staging did not just obtain from the catalogue is not downloaded.

One instance serves one call of ModuleFileTransactions.stageUpdate(java.lang.String, java.util.List<com.ultikits.ultitools.abstracts.UltiToolsPlugin>, java.util.function.Function<com.ultikits.ultitools.abstracts.UltiToolsPlugin, java.io.File>, com.ultikits.ultitools.utils.ModuleFileTransactions.Catalogue, com.ultikits.ultitools.utils.ModuleFileTransactions.Downloader), which asks for the link and then downloads it on the same thread; it is not shared.