public final class FilesystemResourceLoader extends java.lang.Object implements ResourceLoader
ResourceLoader
that opens resource files
from the local file system, optionally resolving against
a base directory.
This loader wraps a delegate ResourceLoader
that is used to resolve all files, the current base directory
does not contain. newInstance(java.lang.String, java.lang.Class<T>)
is always resolved
against the delegate, as a ClassLoader
is needed.
You can chain several FilesystemResourceLoader
s
to allow lookup of files in more than one base directory.
Modifier and Type | Field and Description |
---|---|
private java.nio.file.Path |
baseDirectory |
private ResourceLoader |
delegate |
Constructor and Description |
---|
FilesystemResourceLoader(java.nio.file.Path baseDirectory)
Deprecated.
You should not use this ctor, because it uses the thread's context
class loader as fallback for resource lookups, which is bad programming style.
Please specify a
ClassLoader instead. |
FilesystemResourceLoader(java.nio.file.Path baseDirectory,
java.lang.ClassLoader delegate)
Creates a resource loader that resolves resources against the given
base directory (may be
null to refer to CWD). |
FilesystemResourceLoader(java.nio.file.Path baseDirectory,
ResourceLoader delegate)
Creates a resource loader that resolves resources against the given
base directory (may be
null to refer to CWD). |
Modifier and Type | Method and Description |
---|---|
<T> java.lang.Class<? extends T> |
findClass(java.lang.String cname,
java.lang.Class<T> expectedType)
Finds class of the name and expected type
|
<T> T |
newInstance(java.lang.String cname,
java.lang.Class<T> expectedType)
Creates an instance of the name and expected type
|
java.io.InputStream |
openResource(java.lang.String resource)
Opens a named resource
|
private final java.nio.file.Path baseDirectory
private final ResourceLoader delegate
@Deprecated public FilesystemResourceLoader(java.nio.file.Path baseDirectory)
ClassLoader
instead.null
to refer to CWD).
Files not found in file system and class lookups are delegated to context
classloader.public FilesystemResourceLoader(java.nio.file.Path baseDirectory, java.lang.ClassLoader delegate)
null
to refer to CWD).
Files not found in file system and class lookups are delegated to context
classloader.public FilesystemResourceLoader(java.nio.file.Path baseDirectory, ResourceLoader delegate)
null
to refer to CWD).
Files not found in file system and class lookups are delegated
to the given delegate ResourceLoader
.public java.io.InputStream openResource(java.lang.String resource) throws java.io.IOException
ResourceLoader
openResource
in interface ResourceLoader
java.io.IOException
public <T> T newInstance(java.lang.String cname, java.lang.Class<T> expectedType)
ResourceLoader
newInstance
in interface ResourceLoader
public <T> java.lang.Class<? extends T> findClass(java.lang.String cname, java.lang.Class<T> expectedType)
ResourceLoader
findClass
in interface ResourceLoader