]> source.dussan.org Git - javassist.git/commitdiff
added ClassPool.getOrNull()
authorchiba <chiba@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>
Sat, 15 May 2010 13:37:06 +0000 (13:37 +0000)
committerchiba <chiba@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>
Sat, 15 May 2010 13:37:06 +0000 (13:37 +0000)
git-svn-id: http://anonsvn.jboss.org/repos/javassist/trunk@544 30ef5769-5b8d-40dd-aea6-55b5d6557bb3

src/main/javassist/ClassPool.java

index 13f8b71bdab97debcfe024b8b23fc62f89ce6b52..78c90c4e6569d563d3632589314e76d4ce402beb 100644 (file)
@@ -440,6 +440,40 @@ public class ClassPool {
         }
     }
 
+    /**
+     * Reads a class file from the source and returns a reference
+     * to the <code>CtClass</code>
+     * object representing that class file.
+     * This method is equivalent to <code>get</code> except
+     * that it returns <code>null</code> when a class file is
+     * not found and it never throws an exception.
+     *
+     * @param classname     a fully-qualified class name.
+     * @return a <code>CtClass</code> object or <code>null</code>.
+     * @see #get(String)
+     * @see #find(String)
+     * @since 3.13
+     */
+    public CtClass getOrNull(String classname) {
+        CtClass clazz = null;
+        if (classname == null)
+            clazz = null;
+        else
+            try {
+                /* ClassPool.get0() never throws an exception
+                   but its subclass may implement get0 that
+                   may throw an exception.
+                */
+                clazz = get0(classname, true);
+            }
+            catch (NotFoundException e){}
+
+        if (clazz != null)
+            clazz.incGetCounter();
+
+        return clazz;
+    }
+
     /**
      * Returns a <code>CtClass</code> object with the given name.
      * This is almost equivalent to <code>get(String)</code> except