Package org.apache.catalina.webresources

## Class FileResourceSet

- java.lang.Object
- - org.apache.catalina.util.LifecycleBase
  - - org.apache.catalina.webresources.AbstractResourceSet
    - - org.apache.catalina.webresources.AbstractFileResourceSet
      - - org.apache.catalina.webresources.FileResourceSet

- All Implemented Interfaces:
    `Lifecycle`, `WebResourceSet`

      public class FileResourceSet
      extends AbstractFileResourceSet

  Represents a `WebResourceSet` based on a single file.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle

      `Lifecycle.SingleUse`

  - ### Field Summary

    - ### Fields inherited from class org.apache.catalina.webresources.AbstractFileResourceSet

      `EMPTY_STRING_ARRAY`

    - ### Fields inherited from class org.apache.catalina.webresources.AbstractResourceSet

      `sm`

    - ### Fields inherited from interface org.apache.catalina.Lifecycle

      `AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `FileResourceSet()` | A no argument constructor is required for this to work with the digester.
    `FileResourceSet​(WebResourceRoot root, java.lang.String webAppMount, java.lang.String base, java.lang.String internalPath)` | Creates a new `WebResourceSet` based on a file.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `checkType​(java.io.File file)` |
    `WebResource` | `getResource​(java.lang.String path)` | Obtain the object that represents the resource at the given path.
    `java.lang.String[]` | `list​(java.lang.String path)` | Obtain the list of the names of all of the files and directories located in the specified directory.
    `java.util.Set<java.lang.String>` | `listWebAppPaths​(java.lang.String path)` | Obtain the Set of the web applications pathnames of all of the files and directories located in the specified directory.
    `boolean` | `mkdir​(java.lang.String path)` | Create a new directory at the given path.
    `boolean` | `write​(java.lang.String path, java.io.InputStream is, boolean overwrite)` | Create a new resource at the requested path using the provided InputStream.

    - ### Methods inherited from class org.apache.catalina.webresources.AbstractFileResourceSet

      `file, gc, getBaseUrl, getFileBase, initInternal, isReadOnly, logIgnoredSymlink, setReadOnly`

    - ### Methods inherited from class org.apache.catalina.webresources.AbstractResourceSet

      `checkPath, destroyInternal, getBase, getClassLoaderOnly, getInternalPath, getManifest, getRoot, getStaticOnly, getWebAppMount, setBase, setClassLoaderOnly, setInternalPath, setManifest, setRoot, setStaticOnly, setWebAppMount, startInternal, stopInternal`

    - ### Methods inherited from class org.apache.catalina.util.LifecycleBase

      `addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.catalina.Lifecycle

      `addLifecycleListener, destroy, findLifecycleListeners, getState, getStateName, init, removeLifecycleListener, start, stop`

- - ### Constructor Detail

    - #### FileResourceSet

          public FileResourceSet()

      A no argument constructor is required for this to work with the digester.

    - #### FileResourceSet

          public FileResourceSet​(WebResourceRoot root,
                                 java.lang.String webAppMount,
                                 java.lang.String base,
                                 java.lang.String internalPath)

      Creates a new `WebResourceSet` based on a file.
      Parameters:
        `root` - The `WebResourceRoot` this new `WebResourceSet` will be added to.
        `webAppMount` - The path within the web application at which this `WebResourceSet` will be mounted. For example, to add a directory of JARs to a web application, the directory would be mounted at "WEB-INF/lib/"
        `base` - The absolute path to the file on the file system from which the resource will be served.
        `internalPath` - The path within this new `WebResourceSet` where resources will be served from.

  - ### Method Detail

    - #### getResource

          public WebResource getResource​(java.lang.String path)

      Description copied from interface: `WebResourceSet`
      Obtain the object that represents the resource at the given path. Note the resource at that path may not exist.
      Parameters:
        `path` - The path for the resource of interest relative to the root of the web application. It must start with '/'.
      Returns:
        The object that represents the resource at the given path

    - #### list

          public java.lang.String[] list​(java.lang.String path)

      Description copied from interface: `WebResourceSet`
      Obtain the list of the names of all of the files and directories located in the specified directory.
      Parameters:
        `path` - The path for the resource of interest relative to the root of the web application. It must start with '/'.
      Returns:
        The list of resources. If path does not refer to a directory then a zero length array will be returned.

    - #### listWebAppPaths

          public java.util.Set<java.lang.String> listWebAppPaths​(java.lang.String path)

      Description copied from interface: `WebResourceSet`
      Obtain the Set of the web applications pathnames of all of the files and directories located in the specified directory. Paths representing directories will end with a "/" character.
      Parameters:
        `path` - The path for the resource of interest relative to the root of the web application. It must start with '/'.
      Returns:
        The Set of resources. If path does not refer to a directory then an empty set will be returned.

    - #### mkdir

          public boolean mkdir​(java.lang.String path)

      Description copied from interface: `WebResourceSet`
      Create a new directory at the given path.
      Parameters:
        `path` - The path for the new resource to create relative to the root of the web application. It must start with '/'.
      Returns:
        `true` if the directory was created, otherwise `false`

    - #### write

          public boolean write​(java.lang.String path,
                               java.io.InputStream is,
                               boolean overwrite)

      Description copied from interface: `WebResourceSet`
      Create a new resource at the requested path using the provided InputStream.
      Parameters:
        `path` - The path to be used for the new Resource. It is relative to the root of the web application and must start with '/'.
        `is` - The InputStream that will provide the content for the new Resource.
        `overwrite` - If `true` and the resource already exists it will be overwritten. If `false` and the resource already exists the write will fail.
      Returns:
        `true` if and only if the new Resource is written

    - #### checkType

          protected void checkType​(java.io.File file)

      Specified by:
        `checkType` in class `AbstractFileResourceSet`