|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jpox.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 |
unloadedClasses
Cache for loaded classes |
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)
Finds the resource with the given name. |
java.util.Enumeration |
getResources(java.lang.String resourceName)
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 |
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 int registeredLoaderHashCode
protected java.util.Map loadedClasses
protected java.util.Map unloadedClasses
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 ClassLoaderResolver
name
- Name of the Class to be loadedprimary
- primary ClassLoader to use (or null)
ClassNotResolvedException
- if the class can't be found in the classpathpublic java.lang.Class classForName(java.lang.String name, java.lang.ClassLoader primary, boolean initialize)
classForName
in interface ClassLoaderResolver
name
- 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 ClassLoaderResolver
name
- Name of the Class to be loaded
public java.lang.Class classForName(java.lang.String name, boolean initialize)
classForName
in interface ClassLoaderResolver
name
- Name of the Class to be loadedinitialize
- whether to initialize the class or not.
ClassNotResolvedException
- if the class can't be found in the classpathpublic boolean isAssignableFrom(java.lang.String class_name_1, java.lang.String class_name_2)
isAssignableFrom
in interface ClassLoaderResolver
class_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 ClassLoaderResolver
class_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 ClassLoaderResolver
class_1
- First classclass_name_2
- Name of second class
public void registerClassLoader(java.lang.ClassLoader loader)
registerClassLoader
in interface ClassLoaderResolver
loader
- The ClassLoader in which classes are definedpublic java.util.Enumeration getResources(java.lang.String resourceName) throws java.io.IOException
getResources
in interface ClassLoaderResolver
resourceName
- the resource name. If resourceName
starts with "/", remove it before searching.
java.io.IOException
- If I/O errors occurClassLoader.getResources(java.lang.String)
public java.net.URL getResource(java.lang.String resourceName)
getResource
in interface ClassLoaderResolver
resourceName
- the path to resource name relative to the classloader root path. If resourceName
starts with "/", remove it before searching.
java.io.IOException
- If I/O errors occurClassLoader.getResource(java.lang.String)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |