Package de.mhus.lib.core.lang
Class DynamicClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- de.mhus.lib.core.lang.DynamicClassLoader
-
public class DynamicClassLoader extends ClassLoader
This class loader is a distributor. You can dynamically change the list of child loaders. The class loader is thread safe.- Author:
- mikehummel
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDynamicClassLoader.RESULTstatic classDynamicClassLoader.Rule
-
Field Summary
Fields Modifier and Type Field Description protected LinkedList<MResourceProvider>classLoadersprotected DynamicClassLoader.RESULTdefaultRulestatic Loglogprotected Stringnameprotected DynamicClassLoader.Rule[]rules
-
Constructor Summary
Constructors Constructor Description DynamicClassLoader(String name)DynamicClassLoader(String name, ClassLoader parent)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(int index, MResourceProvider element)booleanadd(MResourceProvider e)voidaddRule(DynamicClassLoader.Rule rule)voidclear()Class<?>findAndOwnClass(String name)protected Class<?>findClass(String name)protected URLfindResource(String name)booleanremove(MResourceProvider o)voidsetDefaultRule(DynamicClassLoader.RESULT rule)voidsetRules(List<DynamicClassLoader.Rule> list)StringtoString()-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, 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
-
log
public static Log log
-
name
protected String name
-
classLoaders
protected LinkedList<MResourceProvider> classLoaders
-
rules
protected DynamicClassLoader.Rule[] rules
-
defaultRule
protected DynamicClassLoader.RESULT defaultRule
-
-
Constructor Detail
-
DynamicClassLoader
public DynamicClassLoader(String name)
-
DynamicClassLoader
public DynamicClassLoader(String name, ClassLoader parent)
-
-
Method Detail
-
setRules
public void setRules(List<DynamicClassLoader.Rule> list)
-
addRule
public void addRule(DynamicClassLoader.Rule rule)
-
setDefaultRule
public void setDefaultRule(DynamicClassLoader.RESULT rule)
-
findClass
protected Class<?> findClass(String name) throws ClassNotFoundException
- Overrides:
findClassin classClassLoader- Throws:
ClassNotFoundException
-
findAndOwnClass
public Class<?> findAndOwnClass(String name) throws ClassNotFoundException
- Throws:
ClassNotFoundException
-
findResource
protected URL findResource(String name)
- Overrides:
findResourcein classClassLoader
-
add
public boolean add(MResourceProvider e)
-
remove
public boolean remove(MResourceProvider o)
-
clear
public void clear()
-
add
public void add(int index, MResourceProvider element)
-
-