]> source.dussan.org Git - javassist.git/commitdiff
- Made ClassPool.get0 protected so that subclasses of ClassPool can call it
authorpatriot1burke <patriot1burke@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>
Fri, 23 May 2003 23:18:39 +0000 (23:18 +0000)
committerpatriot1burke <patriot1burke@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>
Fri, 23 May 2003 23:18:39 +0000 (23:18 +0000)
- Moved all access to the class cache in ClassPool (ClassPool.classes) to a method called getCached(String classname).  This is so subclasses of ClassPool can override this behavior.

git-svn-id: http://anonsvn.jboss.org/repos/javassist/trunk@22 30ef5769-5b8d-40dd-aea6-55b5d6557bb3

src/main/javassist/ClassPool.java

index 6cf67a44d434ae95cb88f273043f7a632fa8a0c2..7fc192d2366fd84b4ef5e13a5567744cb77f6f56 100644 (file)
@@ -83,6 +83,14 @@ public class ClassPool {
 
     protected Hashtable classes;        // should be synchronous
 
+   /**
+    * Provide a hook so that subclasses can do their own
+    * caching of classes
+    */
+    protected CtClass getCached(String classname)
+    {
+        return (CtClass)classes.get(classname); 
+    }
     /**
      * Creates a class pool.
      *
@@ -434,12 +442,12 @@ public class ClassPool {
                        boolean callback)
         throws NotFoundException, CannotCompileException, IOException
     {
-        CtClass clazz = (CtClass)classes.get(classname);
+        CtClass clazz = (CtClass)getCached(classname);
         if (callback && translator != null
                                 && (clazz == null || !clazz.isFrozen())) {
             translator.onWrite(this, classname);
             // The CtClass object might be overwritten.
-            clazz = (CtClass)classes.get(classname);
+            clazz = (CtClass)getCached(classname);
         }
 
         if (clazz == null || !clazz.isModified()) {
@@ -464,7 +472,7 @@ public class ClassPool {
      * Is invoked by CtClassType.setName().
      */
     synchronized void classNameChanged(String oldname, CtClass clazz) {
-        CtClass c = (CtClass)classes.get(oldname);
+        CtClass c = (CtClass)getCached(oldname);
         if (c == clazz)         // must check this equation
             classes.remove(c);
 
@@ -527,7 +535,7 @@ public class ClassPool {
         return clazz;
     }
 
-    private CtClass get0(String classname) throws NotFoundException {
+    protected CtClass get0(String classname) throws NotFoundException {
         if (classname.endsWith("[]"))
             return new CtArray(classname, this);
         else {