Class PluginDependencyResolver.MissingDependencyException

java.lang.Object
java.lang.Throwable
java.lang.Exception
com.ultikits.ultitools.manager.PluginDependencyResolver.MissingDependencyException
All Implemented Interfaces:
Serializable
Enclosing class:
PluginDependencyResolver

public static class PluginDependencyResolver.MissingDependencyException extends Exception
Exception thrown when required dependencies are missing.

Carries a structured partition alongside the message (D-10): getSortedPrefix() is every module that does not depend, directly or transitively, on the missing dependency, and getRefusedPlugins() is the declaring module(s) plus everything transitively depending on them. The caller obtains both from these accessors, never by parsing Throwable.getMessage().

See Also:
  • Field Details

  • Constructor Details

    • MissingDependencyException

      public MissingDependencyException(String message)
    • MissingDependencyException

      public MissingDependencyException(String message, List<Class<? extends UltiToolsPlugin>> sortedPrefix, Set<String> refusedPlugins)
      Constructs a missing-hard-dependency refusal carrying the structured partition.
      Parameters:
      message - the human-readable detection message, naming the declaring module(s) and the dependency each wanted
      sortedPrefix - every plugin class that survives, in load order
      refusedPlugins - the declaring module(s) plus every plugin transitively depending on them, by plugin name
      Since:
      6.3.0
  • Method Details

    • getSortedPrefix

      public List<Class<? extends UltiToolsPlugin>> getSortedPrefix()
      The plugin classes that survive - do not depend, directly or transitively, on a missing hard dependency - in load order. Never null.
      Returns:
      the sortable prefix
      Since:
      6.3.0
    • getRefusedPlugins

      public Set<String> getRefusedPlugins()
      The declaring module(s) plus every plugin transitively depending on them, by plugin name. Never null.
      Returns:
      the refused plugin names
      Since:
      6.3.0