Package org.apache.bcel
Class Repository
java.lang.Object
org.apache.bcel.Repository
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.
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic JavaClass
Adds clazz to repository if there isn't an equally named class already in there.static void
Clears the repository.static JavaClass[]
getInterfaces
(String class_name) static JavaClass[]
getInterfaces
(JavaClass clazz) static Repository
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) Tries to find class source using the internal repository instance.static JavaClass
lookupClass
(String class_name) Lookups 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) Removes class with given (fully qualified) name from repository.static void
removeClass
(JavaClass clazz) Removes given class from repository.static void
setRepository
(Repository rep) Sets repository instance to be used for class loading
-
Constructor Details
-
Repository
public Repository()
-
-
Method Details
-
getRepository
- Returns:
- currently used repository instance
-
setRepository
Sets repository instance to be used for class loading -
lookupClass
Lookups class somewhere found on your CLASSPATH, or whereever the repository instance looks for it.- Returns:
- class object for given fully qualified class name
- Throws:
ClassNotFoundException
- if the class could not be found or parsed correctly
-
lookupClass
Tries to find class source using the internal repository instance.- Returns:
- JavaClass object for given runtime class
- Throws:
ClassNotFoundException
- if the class could not be found or parsed correctly- See Also:
-
lookupClassFile
- Returns:
- class file object for given Java class by looking on the system class path; returns null if the class file can't be found
-
clearCache
public static void clearCache()Clears the repository. -
addClass
Adds clazz to repository if there isn't an equally named class already in there.- Returns:
- old entry in repository
-
removeClass
Removes class with given (fully qualified) name from repository. -
removeClass
Removes given class from repository. -
getSuperClasses
- Returns:
- list of super classes of clazz in ascending order, i.e., Object is always the last element
- Throws:
ClassNotFoundException
- if any of the superclasses can't be found
-
getSuperClasses
- Returns:
- list of super classes of clazz in ascending order, i.e., Object is always the last element.
- Throws:
ClassNotFoundException
- if the named class or any of its superclasses can't be found
-
getInterfaces
- 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).
- Throws:
ClassNotFoundException
- if any of the class's superclasses or superinterfaces can't be found
-
getInterfaces
- Returns:
- all interfaces implemented by class and its super classes and the interfaces that extend those interfaces, and so on
- Throws:
ClassNotFoundException
- if the named class can't be found, or if any of its superclasses or superinterfaces can't be found
-
instanceOf
public static boolean instanceOf(JavaClass clazz, JavaClass super_class) throws ClassNotFoundException Equivalent to runtime "instanceof" operator.- Returns:
- true, if clazz is an instance of super_class
- Throws:
ClassNotFoundException
- if any superclasses or superinterfaces of clazz can't be found
-
instanceOf
- Returns:
- true, if clazz is an instance of super_class
- Throws:
ClassNotFoundException
- if either clazz or super_class can't be found
-
instanceOf
- Returns:
- true, if clazz is an instance of super_class
- Throws:
ClassNotFoundException
- if super_class can't be found
-
instanceOf
- Returns:
- true, if clazz is an instance of super_class
- Throws:
ClassNotFoundException
- if clazz can't be found
-
implementationOf
public static boolean implementationOf(JavaClass clazz, JavaClass inter) throws ClassNotFoundException - Returns:
- true, if clazz is an implementation of interface inter
- Throws:
ClassNotFoundException
- if any superclasses or superinterfaces of clazz can't be found
-
implementationOf
- Returns:
- true, if clazz is an implementation of interface inter
- Throws:
ClassNotFoundException
- if clazz, inter, or any superclasses or superinterfaces of clazz can't be found
-
implementationOf
- Returns:
- true, if clazz is an implementation of interface inter
- Throws:
ClassNotFoundException
- if inter or any superclasses or superinterfaces of clazz can't be found
-
implementationOf
- Returns:
- true, if clazz is an implementation of interface inter
- Throws:
ClassNotFoundException
- if clazz or any superclasses or superinterfaces of clazz can't be found
-