com.google.common.reflect
Class ClassPath

java.lang.Object
  extended by com.google.common.reflect.ClassPath

@Beta
public final class ClassPath
extends java.lang.Object

Scans the source of a ClassLoader and finds all the classes loadable.

Since:
14.0

Nested Class Summary
static class ClassPath.ClassInfo
          Represents a class that can be loaded through ClassPath.ClassInfo.load().
static class ClassPath.ResourceInfo
          Represents a class path resource that can be either a class file or any other resource file loadable from the class path.
 
Method Summary
static ClassPath from(java.lang.ClassLoader classloader)
          Returns a ClassPath representing all classes and resources loadable from classloader and its parent class loaders.
 ImmutableSet<ClassPath.ResourceInfo> getResources()
          Returns all resources loadable from the current class path, including the class files of all loadable classes.
 ImmutableSet<ClassPath.ClassInfo> getTopLevelClasses()
          Returns all top level classes loadable from the current class path.
 ImmutableSet<ClassPath.ClassInfo> getTopLevelClasses(java.lang.String packageName)
          Returns all top level classes whose package name is packageName.
 ImmutableSet<ClassPath.ClassInfo> getTopLevelClassesRecursive(java.lang.String packageName)
          Returns all top level classes whose package name is packageName or starts with packageName followed by a '.'.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

from

public static ClassPath from(java.lang.ClassLoader classloader)
                      throws java.io.IOException
Returns a ClassPath representing all classes and resources loadable from classloader and its parent class loaders.

Currently only URLClassLoader and only file:// urls are supported.

Throws:
java.io.IOException - if the attempt to read class path resources (jar files or directories) failed.

getResources

public ImmutableSet<ClassPath.ResourceInfo> getResources()
Returns all resources loadable from the current class path, including the class files of all loadable classes.


getTopLevelClasses

public ImmutableSet<ClassPath.ClassInfo> getTopLevelClasses()
Returns all top level classes loadable from the current class path.


getTopLevelClasses

public ImmutableSet<ClassPath.ClassInfo> getTopLevelClasses(java.lang.String packageName)
Returns all top level classes whose package name is packageName.


getTopLevelClassesRecursive

public ImmutableSet<ClassPath.ClassInfo> getTopLevelClassesRecursive(java.lang.String packageName)
Returns all top level classes whose package name is packageName or starts with packageName followed by a '.'.