Package org.datanucleus.enhancer
Class EnhancerClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- org.datanucleus.enhancer.EnhancerClassLoader
-
public final class EnhancerClassLoader extends java.lang.ClassLoader
ClassLoader for newly defined classes. Parent classloader is the context classloader obtained during instantiation of this class
-
-
Field Summary
Fields Modifier and Type Field Description (package private) ClassLoaderResolver
delegate
Delegate ClassLoaderResolver may be used during class definition if the class has links to other classes.(package private) boolean
loadingClass
flag to avoid reentrant invocations to loading operations(package private) boolean
loadingResource
flag to avoid reentrant invocations to loading operations
-
Constructor Summary
Constructors Constructor Description EnhancerClassLoader()
EnhancerClassLoader(ClassLoaderResolver iDelegate)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
defineClass(java.lang.String fullClassName, byte[] bytes, ClassLoaderResolver clr)
Define a class in this ClassLoader.protected java.net.URL
findResource(java.lang.String name)
Overwrite to have an opportunity to find resources from the delegate ClassLoaderResolverjava.lang.Class
loadClass(java.lang.String name)
Overwrite to have an opportunity to load classes from the delegate ClassLoaderResolver-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResources, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Field Detail
-
delegate
ClassLoaderResolver delegate
Delegate ClassLoaderResolver may be used during class definition if the class has links to other classes.
-
loadingClass
boolean loadingClass
flag to avoid reentrant invocations to loading operations
-
loadingResource
boolean loadingResource
flag to avoid reentrant invocations to loading operations
-
-
Constructor Detail
-
EnhancerClassLoader
public EnhancerClassLoader()
-
EnhancerClassLoader
public EnhancerClassLoader(ClassLoaderResolver iDelegate)
-
-
Method Detail
-
defineClass
public void defineClass(java.lang.String fullClassName, byte[] bytes, ClassLoaderResolver clr)
Define a class in this ClassLoader.- Parameters:
fullClassName
- the class namebytes
- the bytes representation of the classclr
- the ClassLoaderResolver to load linked classes
-
loadClass
public java.lang.Class loadClass(java.lang.String name) throws java.lang.ClassNotFoundException
Overwrite to have an opportunity to load classes from the delegate ClassLoaderResolver- Overrides:
loadClass
in classjava.lang.ClassLoader
- Throws:
java.lang.ClassNotFoundException
-
findResource
protected java.net.URL findResource(java.lang.String name)
Overwrite to have an opportunity to find resources from the delegate ClassLoaderResolver- Overrides:
findResource
in classjava.lang.ClassLoader
-
-