JBoss Modules 1.1.2.GA

org.jboss.modules
Class ClassifyingModuleLoader

java.lang.Object
  extended by org.jboss.modules.ModuleLoader
      extended by org.jboss.modules.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 Summary
ClassifyingModuleLoader(String name, Map<String,ModuleLoader> delegates, ModuleLoader defaultLoader)
          Construct a new instance.
 
Method Summary
protected  ModuleSpec findModule(ModuleIdentifier moduleIdentifier)
          Find a Module's specification in this ModuleLoader by its identifier.
protected  Module preloadModule(ModuleIdentifier moduleIdentifier)
          Preload a module based on an identifier.
 void setDelegates(Map<String,ModuleLoader> delegates)
          Change the delegates map.
 String toString()
          Get the string representation of this module loader.
 
Methods inherited from class org.jboss.modules.ModuleLoader
findLoadedModuleLocal, forClass, forClassLoader, loadModule, loadModuleLocal, preloadExportedModule, preloadModule, refreshResourceLoaders, relink, setAndRefreshResourceLoaders, setAndRelinkDependencies, unloadModuleLocal
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ClassifyingModuleLoader

public ClassifyingModuleLoader(String name,
                               Map<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

preloadModule

protected Module preloadModule(ModuleIdentifier moduleIdentifier)
                        throws ModuleLoadException
Preload a module based on an identifier. By default, no delegation is done and this method simply invokes ModuleLoader.loadModuleLocal(ModuleIdentifier). A delegating module loader may delegate to the appropriate module loader based on loader-specific criteria (via the ModuleLoader.preloadModule(ModuleIdentifier, ModuleLoader) method).

Overrides:
preloadModule in class ModuleLoader
Parameters:
moduleIdentifier - the module identifier
Returns:
the load result, or null if the module is not found
Throws:
ModuleLoadException - if an error occurs

findModule

protected ModuleSpec findModule(ModuleIdentifier moduleIdentifier)
                         throws ModuleLoadException
Find a Module's specification in this ModuleLoader by its identifier. This should be overriden by sub-classes to implement the Module loading strategy for this loader.

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.

Specified by:
findModule in class ModuleLoader
Parameters:
moduleIdentifier - The modules Identifier
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(Map<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 String toString()
Description copied from class: ModuleLoader
Get the string representation of this module loader.

Specified by:
toString in class ModuleLoader
Returns:
the string representation

JBoss Modules 1.1.2.GA

Copyright © 2012 JBoss by Red Hat. All Rights Reserved.