Methods Summary |
---|
public void | clear()Clear all entries from cache.
_loadedClasses.clear();
|
public com.sun.org.apache.bcel.internal.classfile.JavaClass | findClass(java.lang.String className)Find an already defined (cached) JavaClass object by name.
return (JavaClass)_loadedClasses.get(className);
|
public static com.sun.org.apache.bcel.internal.util.SyntheticRepository | getInstance()
return getInstance(ClassPath.SYSTEM_CLASS_PATH);
|
public static com.sun.org.apache.bcel.internal.util.SyntheticRepository | getInstance(ClassPath classPath)
SyntheticRepository rep = (SyntheticRepository)_instances.get(classPath);
if(rep == null) {
rep = new SyntheticRepository(classPath);
_instances.put(classPath, rep);
}
return rep;
|
public com.sun.org.apache.bcel.internal.classfile.JavaClass | loadClass(java.lang.String className)Load a JavaClass object for the given class name using
the CLASSPATH environment variable.
if(className == null || className.equals("")) {
throw new IllegalArgumentException("Invalid class name " + className);
}
className = className.replace('/", '."); // Just in case, canonical form
try {
return loadClass(_path.getInputStream(className), className);
} catch(IOException e) {
throw new ClassNotFoundException("Exception while looking for class " +
className + ": " + e.toString());
}
|
public com.sun.org.apache.bcel.internal.classfile.JavaClass | loadClass(java.lang.Class clazz)Try to find class source via getResourceAsStream().
String className = clazz.getName();
String name = className;
int i = name.lastIndexOf('.");
if(i > 0) {
name = name.substring(i + 1);
}
return loadClass(clazz.getResourceAsStream(name + ".class"), className);
|
private com.sun.org.apache.bcel.internal.classfile.JavaClass | loadClass(java.io.InputStream is, java.lang.String className)
JavaClass clazz = findClass(className);
if(clazz != null) {
return clazz;
}
try {
if(is != null) {
ClassParser parser = new ClassParser(is, className);
clazz = parser.parse();
storeClass(clazz);
return clazz;
}
} catch(IOException e) {
throw new ClassNotFoundException("Exception while looking for class " +
className + ": " + e.toString());
}
throw new ClassNotFoundException("SyntheticRepository could not load " +
className);
|
public void | removeClass(com.sun.org.apache.bcel.internal.classfile.JavaClass clazz)Remove class from repository
_loadedClasses.remove(clazz.getClassName());
|
public void | storeClass(com.sun.org.apache.bcel.internal.classfile.JavaClass clazz)Store a new JavaClass instance into this Repository.
_loadedClasses.put(clazz.getClassName(), clazz);
clazz.setRepository(this);
|