Class FilesystemResourceLoader

  • All Implemented Interfaces:
    ResourceLoader

    public final class FilesystemResourceLoader
    extends java.lang.Object
    implements ResourceLoader
    Simple 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 FilesystemResourceLoaders to allow lookup of files in more than one base directory.

    • Constructor Summary

      Constructors 
      Constructor 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.
      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).
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method 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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • baseDirectory

        private final java.nio.file.Path baseDirectory
    • Constructor Detail

      • FilesystemResourceLoader

        @Deprecated
        public 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.
        Creates a resource loader that resolves resources against the given base directory (may be null to refer to CWD). Files not found in file system and class lookups are delegated to context classloader.
        See Also:
        FilesystemResourceLoader(Path, ClassLoader)
      • FilesystemResourceLoader

        public 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). Files not found in file system and class lookups are delegated to context classloader.
      • FilesystemResourceLoader

        public 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). Files not found in file system and class lookups are delegated to the given delegate ResourceLoader.
    • Method Detail

      • openResource

        public java.io.InputStream openResource​(java.lang.String resource)
                                         throws java.io.IOException
        Description copied from interface: ResourceLoader
        Opens a named resource
        Specified by:
        openResource in interface ResourceLoader
        Throws:
        java.io.IOException
      • newInstance

        public <T> T newInstance​(java.lang.String cname,
                                 java.lang.Class<T> expectedType)
        Description copied from interface: ResourceLoader
        Creates an instance of the name and expected type
        Specified by:
        newInstance in interface ResourceLoader
      • findClass

        public <T> java.lang.Class<? extends T> findClass​(java.lang.String cname,
                                                          java.lang.Class<T> expectedType)
        Description copied from interface: ResourceLoader
        Finds class of the name and expected type
        Specified by:
        findClass in interface ResourceLoader