You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2009/11/30 21:33:22 UTC

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

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



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org