@Beta public final class ClassPath extends java.lang.Object
ClassLoader
and finds all loadable classes and resources.Modifier and Type | Class and Description |
---|---|
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.
|
(package private) static class |
ClassPath.Scanner |
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
CLASS_FILE_NAME_EXTENSION |
private static Splitter |
CLASS_PATH_ATTRIBUTE_SEPARATOR
Separator for the Class-Path manifest attribute value in jar files.
|
private static Predicate<ClassPath.ClassInfo> |
IS_TOP_LEVEL |
private static java.util.logging.Logger |
logger |
private ImmutableSet<ClassPath.ResourceInfo> |
resources |
Modifier | Constructor and Description |
---|---|
private |
ClassPath(ImmutableSet<ClassPath.ResourceInfo> resources) |
Modifier and Type | Method and Description |
---|---|
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.ClassInfo> |
getAllClasses()
Returns all classes loadable from the current class path.
|
(package private) static java.lang.String |
getClassName(java.lang.String filename) |
(package private) static ImmutableMap<java.net.URI,java.lang.ClassLoader> |
getClassPathEntries(java.lang.ClassLoader classloader) |
ImmutableSet<ClassPath.ResourceInfo> |
getResources()
Returns all resources loadable from the current class path, including the class files of all
loadable classes but excluding the "META-INF/MANIFEST.MF" file.
|
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 '.'. |
private static final java.util.logging.Logger logger
private static final Predicate<ClassPath.ClassInfo> IS_TOP_LEVEL
private static final Splitter CLASS_PATH_ATTRIBUTE_SEPARATOR
private static final java.lang.String CLASS_FILE_NAME_EXTENSION
private final ImmutableSet<ClassPath.ResourceInfo> resources
private ClassPath(ImmutableSet<ClassPath.ResourceInfo> resources)
public static ClassPath from(java.lang.ClassLoader classloader) throws java.io.IOException
ClassPath
representing all classes and resources loadable from classloader
and its parent class loaders.
Currently only URLClassLoader
and only file://
urls are supported.
java.io.IOException
- if the attempt to read class path resources (jar files or directories)
failed.public ImmutableSet<ClassPath.ResourceInfo> getResources()
public ImmutableSet<ClassPath.ClassInfo> getAllClasses()
public ImmutableSet<ClassPath.ClassInfo> getTopLevelClasses()
public ImmutableSet<ClassPath.ClassInfo> getTopLevelClasses(java.lang.String packageName)
packageName
.public ImmutableSet<ClassPath.ClassInfo> getTopLevelClassesRecursive(java.lang.String packageName)
packageName
or starts with
packageName
followed by a '.'.static ImmutableMap<java.net.URI,java.lang.ClassLoader> getClassPathEntries(java.lang.ClassLoader classloader)
static java.lang.String getClassName(java.lang.String filename)