public class DynamicClassLoader
extends java.lang.ClassLoader
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.| Modifier and Type | Class and Description |
|---|---|
static class |
DynamicClassLoader.EnumInfo |
| Modifier and Type | Field and Description |
|---|---|
DynamicClassWriter |
defaultWriter
Default writer to use if one is not specified.
|
| Constructor and Description |
|---|
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. |
| Modifier and Type | Method and Description |
|---|---|
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, EclipseLinkClassWriter writer)
Register a class to be dynamically created using the provided
DynamicClassWriter. |
void |
addEnum(java.lang.String className, java.lang.Object... literalLabels) |
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.
|
EclipseLinkClassWriter |
getClassWriter(java.lang.String className) |
DynamicClassWriter |
getDefaultWriter() |
static DynamicClassLoader |
lookup(Session session)
Lookup the DynamicConversionManager for the given session.
|
clearAssertionStatus, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatuspublic DynamicClassWriter defaultWriter
public DynamicClassLoader(java.lang.ClassLoader delegate)
DynamicClassWriter
public DynamicClassLoader(java.lang.ClassLoader delegate,
DynamicClassWriter writer)
DynamicClassWriter.public DynamicClassWriter getDefaultWriter()
public EclipseLinkClassWriter getClassWriter(java.lang.String className)
public void addEnum(java.lang.String className,
java.lang.Object... literalLabels)
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,
EclipseLinkClassWriter 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.
DynamicExceptionfindClass(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 -