svn commit: r885579 - /jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/reflect/ClassFinder.java

[email protected]
Newsgroups gmane.comp.jakarta.jmeter.devel
Message-ID <[email protected]>
Author: sebb
Date: Mon Nov 30 20:33:22 2009
New Revision: 885579

URL: http://svn.apache.org/viewvc?rev=885579&view=rev
Log:
Add convenience method findClassesThatExtend(Class<?> superClass)
Make lowest level method private

Modified:
    jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/reflect/ClassFinder.java

Modified: jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/reflect/ClassFinder.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/reflect/ClassFinder.java?rev=885579&r1=885578&r2=885579&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/reflect/ClassFinder.java (original)
+++ jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/reflect/ClassFinder.java Mon Nov 30 20:33:22 2009
@@ -35,6 +35,7 @@
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
+import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jorphan.logging.LoggingManager;
 import org.apache.jorphan.util.JOrphanUtils;
 import org.apache.log.Logger;
@@ -147,7 +148,21 @@
 
     /**
      * Convenience method for
-     * <code>findClassesThatExtend(Class[], boolean)</code>
+     * {@link #findClassesThatExtend(String[], Class[], boolean)}
+     * with the option to include inner classes in the search set to false
+     * and the path list is derived from JMeterUtils.getSearchPaths().
+     *
+     * @param superClass - single class to search for
+     * @return List of Strings containing discovered class names.
+     */
+    public static List<String> findClassesThatExtend(Class<?> superClass)
+        throws IOException {
+        return findClassesThatExtend(JMeterUtils.getSearchPaths(), new Class[]{superClass}, false);
+    }
+
+    /**
+     * Convenience method for
+     * {@link #findClassesThatExtend(String[], Class[], boolean)}
      * with the option to include inner classes in the search set to false.
      *
      * @return List of Strings containing discovered class names.
@@ -252,8 +267,7 @@
      *
      * @return List containing discovered classes
      */
-    @SuppressWarnings("unchecked")
-    public static List<String> findClassesThatExtend(String[] strPathsOrJars,
+    private static List<String> findClassesThatExtend(String[] strPathsOrJars,
                 final Class<?>[] classNames, final boolean innerClasses,
                 String contains, String notContains, boolean annotations)
                 throws IOException  {
@@ -281,9 +295,11 @@
             }
         }
 
+        @SuppressWarnings("unchecked") // Should only be called with classes that extend annotations
+        final Class<? extends Annotation>[] annoclassNames = (Class<? extends Annotation>[]) classNames;
         Set<String> listClasses =
             annotations ?
-                new AnnoFilterTreeSet((Class<? extends Annotation>[]) classNames, innerClasses)
+                new AnnoFilterTreeSet(annoclassNames, innerClasses)
                 :
                 new FilterTreeSet(classNames, innerClasses, contains, notContains);
         // first get all the classes
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.