Package com.ultikits.ultitools.manager
Class PluginDependencyResolver.PluginNode
java.lang.Object
com.ultikits.ultitools.manager.PluginDependencyResolver.PluginNode
- Enclosing class:
PluginDependencyResolver
Represents a dependency graph node containing plugin class and its dependencies.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Class<? extends UltiToolsPlugin> private final Stringprivate final String -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGets all dependencies (hard + soft) that exist in the available plugins, resolving each soft-dependency entry throughaliasMapbefore checking availability so it may name either a simple class name or aplugin.ymlname (D-12).private StringgetId()Unique graph identity, not an additional dependency-name syntax.The plugins this one should load after, as declared in its ownplugin.ymlloadAfter:list.Class<? extends UltiToolsPlugin> This module'splugin.ymlname:value, ornullif its code source has no readableplugin.yml.
-
Field Details
-
pluginClass
-
pluginName
-
hardDependencies
-
softDependencies
-
loadBefore
-
loadAfter
-
pluginYmlName
-
-
Constructor Details
-
PluginNode
-
-
Method Details
-
getPluginClass
-
getPluginName
-
getId
Unique graph identity, not an additional dependency-name syntax. -
getHardDependencies
-
getSoftDependencies
-
getLoadBefore
-
getLoadAfter
The plugins this one should load after, as declared in its ownplugin.ymlloadAfter:list. An entry naming a module that is not installed is inert (Paper parity) - onlydependstreats an absent target as an error.- Returns:
- the declared loadAfter targets, by raw declared name (not yet alias-resolved)
- Since:
- 6.3.0
-
getPluginYmlName
This module'splugin.ymlname:value, ornullif its code source has no readableplugin.yml. Used to build the alias map inPluginDependencyResolver.resolve(List)so a dependency entry can name a module by either its simple class name or itsplugin.ymlname.- Returns:
- the declared plugin.yml name, or null
- Since:
- 6.3.0
-
getAllDependencies
Gets all dependencies (hard + soft) that exist in the available plugins, resolving each soft-dependency entry throughaliasMapbefore checking availability so it may name either a simple class name or aplugin.ymlname (D-12).- Parameters:
availablePlugins- the plugin names present in this resolve, as the keysaliasMapmaps to; the resolver passes its internal node keys (fully qualified class names)aliasMap- maps a declared name (simple class name or plugin.yml name) to the canonical node key (independent of its display name). An entry missing from it is looked up inavailablePluginsverbatim, so with the resolver's own inputs a soft dependency spelled as a fully qualified class name counts as available but adds no ordering edge, because the resolver itself resolves only declared names (#841)- Returns:
- the combined hard + resolvable-soft dependency set, by raw declared name
- Since:
- 6.3.0
-