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-unsubscr...@jakarta.apache.org For additional commands, e-mail: jmeter-dev-h...@jakarta.apache.org