Class ClassifyingModuleLoader


  • public final class ClassifyingModuleLoader
    extends ModuleLoader
    A module loader which selects a delegate module loader based upon the prefix of the module name. Longer names are matched first always.
    Author:
    David M. Lloyd
    • Constructor Detail

      • ClassifyingModuleLoader

        public ClassifyingModuleLoader​(java.lang.String name,
                                       java.util.Map<java.lang.String,​ModuleLoader> delegates,
                                       ModuleLoader defaultLoader)
        Construct a new instance. The given delegates map is copied.
        Parameters:
        delegates - the default delegates map to use
        defaultLoader - the default loader to use if no delegate mapping exists
    • Method Detail

      • findModule

        protected ModuleSpec findModule​(java.lang.String name)
                                 throws ModuleLoadException
        Find a Module's specification in this ModuleLoader by its name. This can be overriden by sub-classes to implement the Module loading strategy for this loader. The default implementation iterates the module finders provided during construction.

        If no module is found in this module loader with the given identifier, then this method should return null. If the module is found but some problem occurred (for example, a transitive dependency failed to load) then this method should throw a ModuleLoadException of the relevant type.

        Overrides:
        findModule in class ModuleLoader
        Parameters:
        name - the module name
        Returns:
        the module specification, or null if no module is found with the given identifier
        Throws:
        ModuleLoadException - if any problems occur finding the module
      • setDelegates

        public void setDelegates​(java.util.Map<java.lang.String,​ModuleLoader> delegates)
        Change the delegates map. A copy is made of the given map.
        Parameters:
        delegates - the new delegates map to use
      • toString

        public java.lang.String toString()
        Description copied from class: ModuleLoader
        Get the string representation of this module loader.
        Overrides:
        toString in class ModuleLoader
        Returns:
        the string representation