|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.jpox.JDOClassLoaderResolver
public class JDOClassLoaderResolver
A basic implementation of a ClassLoaderResolver for JDO. A ClassLoaderResolver provides a series of methods for resolving classes from their names. It supports up to 3 class loaders.
| Field Summary | |
|---|---|
protected java.util.Map |
loadedClasses
Cache for loaded classes |
protected static Localiser |
LOCALISER
Localisation utility for output messages |
protected java.lang.ClassLoader |
pmContextLoader
ClassLoader initialised by the PM creation. |
protected int |
pmContextLoaderHashCode
Hash code cache for performance improvement |
protected java.lang.ClassLoader |
registeredLoader
ClassLoader registered to load runtime created classes. |
protected int |
registeredLoaderHashCode
Hash code cache for performance improvement |
protected java.util.Map |
resources
Cache for resources |
protected java.util.Map |
unloadedClasses
Cache for loaded classes |
protected java.lang.ClassLoader |
userRegisteredLoader
ClassLoader registered to load classes. |
protected int |
userRegisteredLoaderHashCode
Hash code cache for performance improvement |
| Constructor Summary | |
|---|---|
JDOClassLoaderResolver()
Constructor for non-PersistenceManager cases so there is no PM context loader. |
|
JDOClassLoaderResolver(java.lang.ClassLoader pmLoader)
Constructor for PersistenceManager cases. |
|
| Method Summary | |
|---|---|
java.lang.Class |
classForName(java.lang.String name)
JDO's Class Loading mechanism (Spec 1.0.1 Chapter 12.5). |
java.lang.Class |
classForName(java.lang.String name,
boolean initialize)
JDO's Class Loading mechanism (Spec 1.0.1 Chapter 12.5) |
java.lang.Class |
classForName(java.lang.String name,
java.lang.ClassLoader primary)
JDO's Class Loading mechanism (Spec 1.0.1 Chapter 12.5). |
java.lang.Class |
classForName(java.lang.String name,
java.lang.ClassLoader primary,
boolean initialize)
JDO's Class Loading mechanism (Spec 1.0.1 Chapter 12.5) |
java.net.URL |
getResource(java.lang.String resourceName,
java.lang.ClassLoader primary)
Finds the resource with the given name. |
java.util.Enumeration |
getResources(java.lang.String resourceName,
java.lang.ClassLoader primary)
Finds all the resources with the given name. |
boolean |
isAssignableFrom(java.lang.Class class_1,
java.lang.String class_name_2)
Utility to check the assignability of 2 classes in accordance with JDO's Class Loading mechanism. |
boolean |
isAssignableFrom(java.lang.String class_name_1,
java.lang.Class class_2)
Utility to check the assignability of 2 classes in accordance with JDO's Class Loading mechanism. |
boolean |
isAssignableFrom(java.lang.String class_name_1,
java.lang.String class_name_2)
Utility to check the assignability of 2 classes in accordance with JDO's Class Loading mechanism. |
void |
registerClassLoader(java.lang.ClassLoader loader)
ClassLoader registered to load classes created at runtime |
void |
registerUserClassLoader(java.lang.ClassLoader loader)
ClassLoader registered by users to load classes. |
void |
setPrimary(java.lang.ClassLoader primary)
Sets the primary classloader for the current thread |
void |
unsetPrimary()
Unsets the primary classloader for the current thread |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected static final Localiser LOCALISER
protected final java.lang.ClassLoader pmContextLoader
protected int pmContextLoaderHashCode
protected java.lang.ClassLoader registeredLoader
protected java.lang.ClassLoader userRegisteredLoader
protected int registeredLoaderHashCode
protected int userRegisteredLoaderHashCode
protected java.util.Map loadedClasses
protected java.util.Map unloadedClasses
protected java.util.Map resources
| Constructor Detail |
|---|
public JDOClassLoaderResolver(java.lang.ClassLoader pmLoader)
pmLoader - Loader from PM initialisation time.public JDOClassLoaderResolver()
| Method Detail |
|---|
public java.lang.Class classForName(java.lang.String name,
java.lang.ClassLoader primary)
classForName in interface ClassLoaderResolvername - Name of the Class to be loadedprimary - primary ClassLoader to use (or null)
ClassNotResolvedException - if the class can't be found in the classpath
public java.lang.Class classForName(java.lang.String name,
java.lang.ClassLoader primary,
boolean initialize)
classForName in interface ClassLoaderResolvername - Name of the Class to be loadedprimary - the primary ClassLoader to use (or null)initialize - whether to initialize the class or not.
ClassNotResolvedException - if the class can't be found in the classpathpublic java.lang.Class classForName(java.lang.String name)
classForName in interface ClassLoaderResolvername - Name of the Class to be loaded
public java.lang.Class classForName(java.lang.String name,
boolean initialize)
classForName in interface ClassLoaderResolvername - Name of the Class to be loadedinitialize - whether to initialize the class or not.
ClassNotResolvedException - if the class can't be found in the classpath
public boolean isAssignableFrom(java.lang.String class_name_1,
java.lang.String class_name_2)
isAssignableFrom in interface ClassLoaderResolverclass_name_1 - Name of first classclass_name_2 - Name of second class
public boolean isAssignableFrom(java.lang.String class_name_1,
java.lang.Class class_2)
isAssignableFrom in interface ClassLoaderResolverclass_name_1 - Name of first classclass_2 - Second class
public boolean isAssignableFrom(java.lang.Class class_1,
java.lang.String class_name_2)
isAssignableFrom in interface ClassLoaderResolverclass_1 - First classclass_name_2 - Name of second class
public void registerClassLoader(java.lang.ClassLoader loader)
registerClassLoader in interface ClassLoaderResolverloader - The ClassLoader in which classes are definedpublic void registerUserClassLoader(java.lang.ClassLoader loader)
loader.
registerUserClassLoader in interface ClassLoaderResolverloader - The ClassLoader in which classes are loaded
public java.util.Enumeration getResources(java.lang.String resourceName,
java.lang.ClassLoader primary)
throws java.io.IOException
getResources in interface ClassLoaderResolverresourceName - the resource name. If resourceName starts with "/", remove it before searching.primary - the primary ClassLoader to use (or null)
java.io.IOException - If I/O errors occurClassLoader.getResources(java.lang.String)
public java.net.URL getResource(java.lang.String resourceName,
java.lang.ClassLoader primary)
getResource in interface ClassLoaderResolverresourceName - the path to resource name relative to the classloader root path.
If resourceName starts with "/", remove it before searching.primary - the primary ClassLoader to use (or null)
java.io.IOException - If I/O errors occurClassLoader.getResource(java.lang.String)public void setPrimary(java.lang.ClassLoader primary)
setPrimary in interface ClassLoaderResolverprimary - the primary classloaderpublic void unsetPrimary()
unsetPrimary in interface ClassLoaderResolver
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||