Package org.apache.openjpa.lib.util
Class MultiClassLoader
- java.lang.Object
 - 
- java.lang.ClassLoader
 - 
- org.apache.openjpa.lib.util.MultiClassLoader
 
 
 
- 
public class MultiClassLoader extends ClassLoader
Class loader type that can be configured to delegate to multiple internal class loaders. TheTHREAD_LOADERconstant is a marker that will be replaced with the context loader of the current thread.- Author:
 - Abe White
 
 
- 
- 
Field Summary
Fields Modifier and Type Field Description static ClassLoaderSYSTEM_LOADERThe standard system class loader.static ClassLoaderTHREAD_LOADERMarker that will be replaced with the context loader of the current thread whenever it is discovered in the class loader list. 
- 
Constructor Summary
Constructors Constructor Description MultiClassLoader()Constructor; initializes the loader with an empty list of delegates.MultiClassLoader(ClassLoader... loaders)MultiClassLoader(MultiClassLoader other)Construct with the class loaders of another multi loader. 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddClassLoader(int index, ClassLoader loader)Add the given class loader at the specified index.booleanaddClassLoader(ClassLoader loader)Add the given class loader to the set of loaders that will be tried.booleanaddClassLoaders(int index, MultiClassLoader multi)Adds all class loaders from the given multi loader starting at the given index.booleanaddClassLoaders(MultiClassLoader multi)Adds all the class loaders from the given multi loader.voidclear()Clear the list of class loaders.booleancontainsClassLoader(ClassLoader loader)Returns true if the list contains the given class loader or marker.booleanequals(Object other)protected Class<?>findClass(String name)protected URLfindResource(String name)protected Enumeration<URL>findResources(String name)ClassLoadergetClassLoader(int index)Return the class loader at the given index.ClassLoader[]getClassLoaders()Return an array of all contained class loaders.inthashCode()booleanisEmpty()Return true if there are no internal class laoders.booleanremoveClassLoader(ClassLoader loader)Remove the given loader from the list.voidsetClassLoaders(MultiClassLoader multi)Set the class loaders of this loader to those of the given loader.intsize()Return the number of internal class loaders.- 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners 
 - 
 
 - 
 
- 
- 
Field Detail
- 
THREAD_LOADER
public static final ClassLoader THREAD_LOADER
Marker that will be replaced with the context loader of the current thread whenever it is discovered in the class loader list. 
- 
SYSTEM_LOADER
public static final ClassLoader SYSTEM_LOADER
The standard system class loader. 
 - 
 
- 
Constructor Detail
- 
MultiClassLoader
public MultiClassLoader()
Constructor; initializes the loader with an empty list of delegates. 
- 
MultiClassLoader
public MultiClassLoader(MultiClassLoader other)
Construct with the class loaders of another multi loader. 
- 
MultiClassLoader
public MultiClassLoader(ClassLoader... loaders)
 
 - 
 
- 
Method Detail
- 
containsClassLoader
public boolean containsClassLoader(ClassLoader loader)
Returns true if the list contains the given class loader or marker. 
- 
getClassLoaders
public ClassLoader[] getClassLoaders()
Return an array of all contained class loaders. 
- 
getClassLoader
public ClassLoader getClassLoader(int index)
Return the class loader at the given index. 
- 
addClassLoader
public boolean addClassLoader(ClassLoader loader)
Add the given class loader to the set of loaders that will be tried.- Returns:
 - true if the loader was added, false if already in the list
 
 
- 
addClassLoader
public boolean addClassLoader(int index, ClassLoader loader)Add the given class loader at the specified index.- Returns:
 - true if the loader was added, false if already in the list
 
 
- 
setClassLoaders
public void setClassLoaders(MultiClassLoader multi)
Set the class loaders of this loader to those of the given loader. 
- 
addClassLoaders
public boolean addClassLoaders(int index, MultiClassLoader multi)Adds all class loaders from the given multi loader starting at the given index.- Returns:
 - true if any loaders were added, false if all already in list
 
 
- 
addClassLoaders
public boolean addClassLoaders(MultiClassLoader multi)
Adds all the class loaders from the given multi loader.- Returns:
 - true if any loaders were added, false if all already in list
 
 
- 
removeClassLoader
public boolean removeClassLoader(ClassLoader loader)
Remove the given loader from the list.- Returns:
 - true if removed, false if not in list
 
 
- 
clear
public void clear()
Clear the list of class loaders. 
- 
size
public int size()
Return the number of internal class loaders. 
- 
isEmpty
public boolean isEmpty()
Return true if there are no internal class laoders. 
- 
findClass
protected Class<?> findClass(String name) throws ClassNotFoundException
- Overrides:
 findClassin classClassLoader- Throws:
 ClassNotFoundException
 
- 
findResource
protected URL findResource(String name)
- Overrides:
 findResourcein classClassLoader
 
- 
findResources
protected Enumeration<URL> findResources(String name) throws IOException
- Overrides:
 findResourcesin classClassLoader- Throws:
 IOException
 
 - 
 
 -