org.apache.jorphan.reflect

## Class ClassFinder

- java.lang.Object
- - org.apache.jorphan.reflect.ClassFinder

    public final class ClassFinder
    extends Object

This class finds classes that extend one of a set of parent classes

### Method Summary

All Methods Static Methods Concrete Methods
`static List<String>` `findAnnotatedClasses(String[] strPathsOrJars, Class<? extends Annotation>[] annotations)` Find classes in the provided path(s)/jar(s) that extend the class(es).
`static List<String>` `findAnnotatedClasses(String[] strPathsOrJars, Class<? extends Annotation>[] annotations, boolean innerClasses)` Find classes in the provided path(s)/jar(s) that extend the class(es).
`static List<String>` `findClasses(String[] searchPathsOrJars, ClassFilter filter)` Find all classes in the given jars that passes the class filter.
`static List<String>` `findClassesThatExtend(String[] paths, Class<?>[] superClasses)` Convenience method for `findClassesThatExtend(String[], Class[], boolean)` with the option to include inner classes in the search set to false.
`static List<String>` `findClassesThatExtend(String[] strPathsOrJars, Class<?>[] superClasses, boolean innerClasses)` Find classes in the provided path(s)/jar(s) that extend the class(es).
`static List<String>` `findClassesThatExtend(String[] strPathsOrJars, Class<?>[] superClasses, boolean innerClasses, String contains, String notContains)` Find classes in the provided path(s)/jar(s) that extend the class(es).
`static List<String>` `findClassesThatExtend(String[] searchPathsOrJars, Class<?>[] classNames, boolean innerClasses, String contains, String notContains, boolean annotations)` Find classes in the provided path(s)/jar(s) that extend the class(es).

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### findClassesThatExtend

    public static List<String> findClassesThatExtend(String[] paths,
                                                     Class<?>[] superClasses)
                                              throws IOException

Convenience method for `findClassesThatExtend(String[], Class[], boolean)` with the option to include inner classes in the search set to false.

Parameters:
  `paths` - pathnames or jarfiles to search for classes
  `superClasses` - required parent class(es)
Returns:
  List of Strings containing discovered class names.
Throws:
  `IOException` - when scanning the classes fails

#### findClassesThatExtend

    public static List<String> findClassesThatExtend(String[] strPathsOrJars,
                                                     Class<?>[] superClasses,
                                                     boolean innerClasses)
                                              throws IOException

Find classes in the provided path(s)/jar(s) that extend the class(es).

Parameters:
  `strPathsOrJars` - pathnames or jarfiles to search for classes
  `superClasses` - required parent class(es)
  `innerClasses` - should we include inner classes?
Returns:
  List containing discovered classes
Throws:
  `IOException` - when scanning for classes fails

#### findClassesThatExtend

    public static List<String> findClassesThatExtend(String[] strPathsOrJars,
                                                     Class<?>[] superClasses,
                                                     boolean innerClasses,
                                                     String contains,
                                                     String notContains)
                                              throws IOException

Find classes in the provided path(s)/jar(s) that extend the class(es).

Parameters:
  `strPathsOrJars` - pathnames or jarfiles to search for classes
  `superClasses` - required parent class(es)
  `innerClasses` - should we include inner classes?
  `contains` - classname should contain this string
  `notContains` - classname should not contain this string
Returns:
  List containing discovered classes
Throws:
  `IOException` - when scanning classes fails

#### findAnnotatedClasses

    public static List<String> findAnnotatedClasses(String[] strPathsOrJars,
                                                    Class<? extends Annotation>[] annotations,
                                                    boolean innerClasses)
                                             throws IOException

Find classes in the provided path(s)/jar(s) that extend the class(es).

Parameters:
  `strPathsOrJars` - pathnames or jarfiles to search for classes
  `annotations` - required annotations
  `innerClasses` - should we include inner classes?
Returns:
  List containing discovered classes
Throws:
  `IOException` - when scanning classes fails

#### findAnnotatedClasses

    public static List<String> findAnnotatedClasses(String[] strPathsOrJars,
                                                    Class<? extends Annotation>[] annotations)
                                             throws IOException

Find classes in the provided path(s)/jar(s) that extend the class(es). Inner classes are not searched.

Parameters:
  `strPathsOrJars` - pathnames or jarfiles to search for classes
  `annotations` - required annotations
Returns:
  List containing discovered classes
Throws:
  `IOException` - when scanning classes fails

#### findClassesThatExtend

    public static List<String> findClassesThatExtend(String[] searchPathsOrJars,
                                                     Class<?>[] classNames,
                                                     boolean innerClasses,
                                                     String contains,
                                                     String notContains,
                                                     boolean annotations)
                                              throws IOException

Find classes in the provided path(s)/jar(s) that extend the class(es).

Parameters:
  `searchPathsOrJars` - pathnames or jarfiles to search for classes
  `classNames` - required parent class(es) or annotations
  `innerClasses` - should we include inner classes?
  `contains` - classname should contain this string
  `notContains` - classname should not contain this string
  `annotations` - true if classnames are annotations
Returns:
  List containing discovered classes
Throws:
  `IOException` - when scanning classes fails

#### findClasses

    public static List<String> findClasses(String[] searchPathsOrJars,
                                           ClassFilter filter)
                                    throws IOException

Find all classes in the given jars that passes the class filter.

Parameters:
  `searchPathsOrJars` - list of strings representing the jar locations
  `filter` - `ClassFilter` that the classes in the jars should conform to
Returns:
  list of all classes in the jars, that conform to `filter`
Throws:
  `IOException` - when reading the jar files fails