public class RuntimeJavaModel
extends org.apache.jdo.impl.model.java.reflection.ReflectionJavaModel
java.lang.Class
and
java.lang.reflect.Field
instances to get Java related
metadata about types and fields.
The RuntimeJavaModelFactory caches JavaModel instances per ClassLoader. The RuntimeJavaModel implementation will use this ClassLoader to lookup any type by name. This makes sure that the type name is unique.
Any JavaType instance bound to a RuntimeJavaModel instance wraps a class
instance that is loaded by the ClassLoader that corresponds to this
RuntimeJavaModel. The only exception are PredefinedType instances
(see PredefinedType.getPredefinedTypes()
which are present in every
RuntimeJavaModel instance.
Constructor and Description |
---|
RuntimeJavaModel(java.lang.ClassLoader classLoader,
RuntimeJavaModelFactory declaringJavaModelFactory)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
org.apache.jdo.model.java.JavaType |
getJavaType(java.lang.Class clazz)
The method returns the JavaType instance for the type name of the
specified class object.
|
org.apache.jdo.model.java.JavaType |
getJavaType(java.lang.String name)
The method returns the JavaType instance for the specified type
name.
|
protected org.apache.jdo.model.java.JavaType |
newJavaTypeInstance(java.lang.Class clazz)
Creates a new instance of the JavaType implementation class.
|
getClassLoader, getDeclaringJavaModelFactory, getInputStreamForResource, getJavaTypeInternal, getJDOModel
public RuntimeJavaModel(java.lang.ClassLoader classLoader, RuntimeJavaModelFactory declaringJavaModelFactory)
public org.apache.jdo.model.java.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 org.apache.jdo.model.java.JavaModel
getJavaType
in class org.apache.jdo.impl.model.java.reflection.ReflectionJavaModel
name
- the name of the typenull
if not present in this model instance.public org.apache.jdo.model.java.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.
Note, this implementation does not call the overloaded getJavaType
method taking a String, because this would retrieve the Class
instance for the specified type again. Instead, it checks the cache
directly. If not available it creates a new ReflectionJavaType using
the specified Class instance.
getJavaType
in interface org.apache.jdo.model.java.JavaModel
getJavaType
in class org.apache.jdo.impl.model.java.reflection.ReflectionJavaModel
clazz
- the Class instance representing the typenull
if not present in this model instance.protected org.apache.jdo.model.java.JavaType newJavaTypeInstance(java.lang.Class clazz)
This implementation returns a RuntimeJavaType instance.
newJavaTypeInstance
in class org.apache.jdo.impl.model.java.reflection.ReflectionJavaModel
clazz
- the Class instance representing the typeCopyright © 2005-2012 Apache Software Foundation. All Rights Reserved.