Class ClassLoaders
- java.lang.Object
-
- org.codehaus.commons.compiler.jdk.util.ClassLoaders
-
public final class ClassLoaders extends Object
Utility methods around theClassLoader
.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Map<String,URL>
getSubresources(ClassLoader classLoader, String name, boolean includeDirectories)
Equivalent withgetSubresources(ClassLoader, String, boolean, boolean)
with the recurse parameter set totrue
.static Map<String,URL>
getSubresources(ClassLoader classLoader, String name, boolean includeDirectories, boolean recurse)
Returns a name-to-URL mapping of all resources "under" a given directory name.static Map<String,URL>
getSubresourcesOf(URL root, String rootName, boolean includeDirectories)
Equivalent withgetSubresourcesOf(URL, String, boolean, boolean)
with the recurse parameter set totrue
.static Map<String,URL>
getSubresourcesOf(URL root, String rootName, boolean includeDirectories, boolean recurse)
Returns a name-to-URL mapping of all resources "under" a given root resource.
-
-
-
Method Detail
-
getSubresources
public static Map<String,URL> getSubresources(@Nullable ClassLoader classLoader, String name, boolean includeDirectories) throws IOException
Equivalent withgetSubresources(ClassLoader, String, boolean, boolean)
with the recurse parameter set totrue
.- Throws:
IOException
-
getSubresources
public static Map<String,URL> getSubresources(@Nullable ClassLoader classLoader, String name, boolean includeDirectories, boolean recurse) throws IOException
Returns a name-to-URL mapping of all resources "under" a given directory name.Iff the name does not end with a slash, then calling this method is equivalent with calling
ClassLoader.getResource(String)
.Otherwise, if the name does end with a slash, then this method returns a name-to-URL mapping of all content resources who's names begin with the given name. Iff recurse is
false
, then only immediate subresources are included. Iff includeDirectories istrue
, then also directory resources are included in the result set; their names all ending with a slash.If multiple resources have the name, then the resources are retrieved from the first occurrence.
- Parameters:
classLoader
- The class loader to use;null
means use the system class loadername
- No leading slash- Returns:
- Keys ending with a slash map to "directory resources", the other keys map to "content resources"
- Throws:
IOException
-
getSubresourcesOf
public static Map<String,URL> getSubresourcesOf(URL root, String rootName, boolean includeDirectories) throws IOException
Equivalent withgetSubresourcesOf(URL, String, boolean, boolean)
with the recurse parameter set totrue
.- Throws:
IOException
-
getSubresourcesOf
public static Map<String,URL> getSubresourcesOf(URL root, String rootName, boolean includeDirectories, boolean recurse) throws IOException
Returns a name-to-URL mapping of all resources "under" a given root resource.If the root designates a "content resource" (as opposed to a "directory resource"), then the method returns
Collections.singletonMap(name, rootName)
.Otherwise, if the root designates a "directory resource", then this method returns a name-to-URL mapping of all content resources that are located "under" the root resource. Iff recurse is
false
, then only immediate subresources are included. Iff includeDirectories istrue
, then directory resources are also included in the result set; their names all ending with a slash.- Returns:
- Keys ending with a slash map to "directory resources", the other keys map to "content resources"
- Throws:
IOException
-
-