org.apache.bcel

Class Repository


public abstract class Repository
extends java.lang.Object

The repository maintains informations about class interdependencies, e.g., whether a class is a sub-class of another. Delegates actual class loading to SyntheticRepository with current class path by default.
Version:
$Id: Repository.java,v 1.11 2002/10/11 20:34:47 mdahm Exp $
Author:
M. Dahm
See Also:
Repository, SyntheticRepository

Method Summary

static JavaClass
addClass(JavaClass clazz)
Add clazz to repository if there isn't an equally named class already in there.
static void
clearCache()
Clear the repository.
static JavaClass[]
getInterfaces(String class_name)
static JavaClass[]
getInterfaces(JavaClass clazz)
static Repository
getRepository()
static JavaClass[]
getSuperClasses(String class_name)
static JavaClass[]
getSuperClasses(JavaClass clazz)
static boolean
implementationOf(String clazz, String inter)
static boolean
implementationOf(String clazz, JavaClass inter)
static boolean
implementationOf(JavaClass clazz, String inter)
static boolean
implementationOf(JavaClass clazz, JavaClass inter)
static boolean
instanceOf(String clazz, String super_class)
static boolean
instanceOf(String clazz, JavaClass super_class)
static boolean
instanceOf(JavaClass clazz, String super_class)
static boolean
instanceOf(JavaClass clazz, JavaClass super_class)
Equivalent to runtime "instanceof" operator.
static JavaClass
lookupClass(Class clazz)
Try to find class source via getResourceAsStream().
static JavaClass
lookupClass(String class_name)
Lookup class somewhere found on your CLASSPATH, or whereever the repository instance looks for it.
static ClassPath.ClassFile
lookupClassFile(String class_name)
static void
removeClass(String clazz)
Remove class with given (fully qualified) name from repository.
static void
removeClass(JavaClass clazz)
Remove given class from repository.
static void
setRepository(Repository rep)
Set repository instance to be used for class loading

Method Details

addClass

public static JavaClass addClass(JavaClass clazz)
Add clazz to repository if there isn't an equally named class already in there.
Returns:
old entry in repository

clearCache

public static void clearCache()
Clear the repository.

getInterfaces

public static JavaClass[] getInterfaces(String class_name)
Returns:
all interfaces implemented by class and its super classes and the interfaces that extend those interfaces, and so on

getInterfaces

public static JavaClass[] getInterfaces(JavaClass clazz)
Returns:
all interfaces implemented by class and its super classes and the interfaces that those interfaces extend, and so on. (Some people call this a transitive hull).

getRepository

public static Repository getRepository()
Returns:
currently used repository instance

getSuperClasses

public static JavaClass[] getSuperClasses(String class_name)
Returns:
list of super classes of clazz in ascending order, i.e., Object is always the last element. return "null", if class cannot be found.

getSuperClasses

public static JavaClass[] getSuperClasses(JavaClass clazz)
Returns:
list of super classes of clazz in ascending order, i.e., Object is always the last element

implementationOf

public static boolean implementationOf(String clazz,
                                       String inter)
Returns:
true, if clazz is an implementation of interface inter

implementationOf

public static boolean implementationOf(String clazz,
                                       JavaClass inter)
Returns:
true, if clazz is an implementation of interface inter

implementationOf

public static boolean implementationOf(JavaClass clazz,
                                       String inter)
Returns:
true, if clazz is an implementation of interface inter

implementationOf

public static boolean implementationOf(JavaClass clazz,
                                       JavaClass inter)
Returns:
true, if clazz is an implementation of interface inter

instanceOf

public static boolean instanceOf(String clazz,
                                 String super_class)
Returns:
true, if clazz is an instance of super_class

instanceOf

public static boolean instanceOf(String clazz,
                                 JavaClass super_class)
Returns:
true, if clazz is an instance of super_class

instanceOf

public static boolean instanceOf(JavaClass clazz,
                                 String super_class)
Returns:
true, if clazz is an instance of super_class

instanceOf

public static boolean instanceOf(JavaClass clazz,
                                 JavaClass super_class)
Equivalent to runtime "instanceof" operator.
Returns:
true, if clazz is an instance of super_class

lookupClass

public static JavaClass lookupClass(Class clazz)
Try to find class source via getResourceAsStream().
Returns:
JavaClass object for given runtime class
See Also:
Class

lookupClass

public static JavaClass lookupClass(String class_name)
Lookup class somewhere found on your CLASSPATH, or whereever the repository instance looks for it.
Returns:
class object for given fully qualified class name, or null if the class could not be found or parsed correctly

lookupClassFile

public static ClassPath.ClassFile lookupClassFile(String class_name)
Returns:
class file object for given Java class.

removeClass

public static void removeClass(String clazz)
Remove class with given (fully qualified) name from repository.

removeClass

public static void removeClass(JavaClass clazz)
Remove given class from repository.

setRepository

public static void setRepository(Repository rep)
Set repository instance to be used for class loading