public class RuntimeJavaModel extends 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.
declaringJavaModelFactory
children, jdoModel, parent, types
Constructor and Description |
---|
RuntimeJavaModel(java.lang.ClassLoader classLoader,
ReflectionJavaModelFactory declaringJavaModelFactory)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
protected JavaType |
createJavaType(java.lang.Class clazz)
Creates a new JavaType instance for the specified Class object.
|
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.
|
getClassLoader, getDeclaringJavaModelFactory, getInputStreamForResource, getJavaTypeInternal
getChildren, getJDOModel, getParent, setJDOModel, setParent
public RuntimeJavaModel(java.lang.ClassLoader classLoader, ReflectionJavaModelFactory declaringJavaModelFactory)
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 ReflectionJavaModel
name
- the name of the typenull
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.
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 JavaModel
getJavaType
in class ReflectionJavaModel
clazz
- the Class instance representing the typenull
if not present in this model instance.protected JavaType createJavaType(java.lang.Class clazz)
This implementation returns a RuntimeJavaType instance.
createJavaType
in class ReflectionJavaModel
clazz
- the Class instance representing the typeCopyright © 2005-2012 Apache Software Foundation. All Rights Reserved.