|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.jdo.impl.model.java.AbstractJavaModel
org.apache.jdo.impl.model.java.reflection.ReflectionJavaModel
A reflection based JavaModel implementation used at runtime.
The implementation takes java.lang.Class
and
java.lang.reflect.Field
instances to get Java related
metadata about types and fields.
The ReflectionJavaModel implementation will use this ClassLoader to lookup any type by name. This makes sure that the type name is unique.
Field Summary | |
private java.lang.ClassLoader |
classLoader
The ClassLoader instance used as key to cache this JavaModel. |
protected ReflectionJavaModelFactory |
declaringJavaModelFactory
The declaring JavaModelFactory. |
Fields inherited from class org.apache.jdo.impl.model.java.AbstractJavaModel |
children, jdoModel, parent, types |
Constructor Summary | |
ReflectionJavaModel(java.lang.ClassLoader classLoader,
ReflectionJavaModelFactory declaringJavaModelFactory)
Constructor. |
Method Summary | |
protected abstract JavaType |
createJavaType(java.lang.Class clazz)
Creates a new JavaType instance for the specified Class object. |
java.lang.ClassLoader |
getClassLoader()
Returns the ClassLoader wrapped by this ReflectionJavaModel instance. |
ReflectionJavaModelFactory |
getDeclaringJavaModelFactory()
Returns the declaring ReflectionJavaModelFactory of this ReflectionJavaModel. |
java.io.InputStream |
getInputStreamForResource(java.lang.String resourceName)
Finds a resource with a given name. |
JavaType |
getJavaType(java.lang.Class clazz)
The method returns the JavaType instance for the type name of the specified class object. |
JavaType |
getJavaType(java.lang.String name)
The method returns the JavaType instance for the specified type name. |
JavaType |
getJavaTypeInternal(java.lang.Class clazz)
The method returns the JavaType instance for the type name of the specified class object. |
Methods inherited from class org.apache.jdo.impl.model.java.AbstractJavaModel |
getChildren, getJDOModel, getParent, setJDOModel, setParent |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
private final java.lang.ClassLoader classLoader
protected final ReflectionJavaModelFactory declaringJavaModelFactory
Constructor Detail |
public ReflectionJavaModel(java.lang.ClassLoader classLoader, ReflectionJavaModelFactory declaringJavaModelFactory)
Method Detail |
public JavaType getJavaType(java.lang.String name)
null
if this model instance does not
know a type with the specified name.
Note, this method calls Class.forName with the wrapped ClassLoader, if it cannot find a JavaType with the specified name in the cache.
getJavaType
in interface JavaModel
getJavaType
in class AbstractJavaModel
name
- the name of the type
null
if not present in this model instance.public JavaType getJavaType(java.lang.Class clazz)
getJavaType(clazz.getName())
. The major difference
between this method and getJavaType taking a type name is that this
method is supposed to return a non-null value. The
specified class object describes an existing type.
- Specified by:
getJavaType
in interface JavaModel
- Overrides:
getJavaType
in class AbstractJavaModel
- Parameters:
clazz
- the Class instance representing the type
- Returns:
- a JavaType instance for the name of the specified class
object.
public java.io.InputStream getInputStreamForResource(java.lang.String resourceName)
null
if no resource with this name is found or if the
caller doesn't have adequate privileges to get the resource.
This implementation delegates the request to the wrapped ClassLoader.
getInputStreamForResource
in interface JavaModel
getInputStreamForResource
in class AbstractJavaModel
resourceName
- the resource name
null
if the resource could not be found or if the caller doesn't have
adequate privileges to get the resource.public java.lang.ClassLoader getClassLoader()
public JavaType getJavaTypeInternal(java.lang.Class clazz)
clazz
- the Class instance representing the type
null
if not present in this model instance.public ReflectionJavaModelFactory getDeclaringJavaModelFactory()
protected abstract JavaType createJavaType(java.lang.Class clazz)
clazz
- the Class instance representing the type
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |