|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.lang.ClassLoader
org.eclipse.persistence.dynamic.DynamicClassLoader
public class DynamicClassLoader
This custom ClassLoader provides support for dynamically generating classes
within an EclipseLink application using byte codes created using a
DynamicClassWriter
. A DynamicClassLoader requires a parent or
delegate class-loader which is provided to the constructor. This delegate
class loader handles the lookup and storage of all created classes.
Field Summary | |
---|---|
DynamicClassWriter |
defaultWriter
Default writer to use if one is not specified. |
Constructor Summary | |
---|---|
DynamicClassLoader(java.lang.ClassLoader delegate)
Create a DynamicClassLoader providing the delegate loader and leaving the defaultWriter as DynamicClassWriter |
|
DynamicClassLoader(java.lang.ClassLoader delegate,
DynamicClassWriter writer)
Create a DynamicClassLoader providing the delegate loader and a default DynamicClassWriter . |
Method Summary | |
---|---|
void |
addClass(java.lang.String className)
Register a class to be dynamically created using the default DynamicClassWriter . |
void |
addClass(java.lang.String className,
java.lang.Class<?> parentClass)
Register a class to be dynamically created using a copy of default DynamicClassWriter but specifying a different parent class. |
void |
addClass(java.lang.String className,
DynamicClassWriter writer)
Register a class to be dynamically created using the provided DynamicClassWriter . |
java.lang.Class<?> |
createDynamicClass(java.lang.String className)
Create a new dynamic entity type for the specified name assuming the use of the default writer and its default parent class. |
java.lang.Class<?> |
createDynamicClass(java.lang.String className,
java.lang.Class<?> parentClass)
Create a new dynamic entity type for the specified name with the specified parent class. |
java.lang.Class<?> |
createDynamicClass(java.lang.String className,
DynamicClassWriter writer)
Create a dynamic class registering a writer and then forcing the provided class name to be loaded. |
DynamicClassWriter |
getClassWriter(java.lang.String className)
|
DynamicClassWriter |
getDefaultWriter()
|
static DynamicClassLoader |
lookup(Session session)
Lookup the DynamicConversionManager for the given session. |
Methods inherited from class java.lang.ClassLoader |
---|
clearAssertionStatus, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public DynamicClassWriter defaultWriter
Constructor Detail |
---|
public DynamicClassLoader(java.lang.ClassLoader delegate)
DynamicClassWriter
public DynamicClassLoader(java.lang.ClassLoader delegate, DynamicClassWriter writer)
DynamicClassWriter
.
Method Detail |
---|
public DynamicClassWriter getDefaultWriter()
public DynamicClassWriter getClassWriter(java.lang.String className)
public void addClass(java.lang.String className)
DynamicClassWriter
.
addClass(String, DynamicClassWriter)
public void addClass(java.lang.String className, java.lang.Class<?> parentClass)
DynamicClassWriter
but specifying a different parent class.
addClass(String, DynamicClassWriter)
public void addClass(java.lang.String className, DynamicClassWriter writer) throws DynamicException
DynamicClassWriter
. The registered writer is used when the
findClass(String)
method is called back on this loader from the
ClassLoader.loadClass(String)
call.
If a duplicate request is made for the same className and the writers are
not compatible a DynamicException
will be thrown. If the
duplicate request contains a compatible writer then the second request is
ignored as the class may already have been generated.
DynamicException
findClass(String)
public java.lang.Class<?> createDynamicClass(java.lang.String className, DynamicClassWriter writer)
public java.lang.Class<?> createDynamicClass(java.lang.String className)
#creatDynamicClass(String, DynamicClassWriter)
public java.lang.Class<?> createDynamicClass(java.lang.String className, java.lang.Class<?> parentClass)
#creatDynamicClass(String, DynamicClassWriter)
public static DynamicClassLoader lookup(Session session)
session
-
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |