CachedResource (Apache Tomcat 9.0.69 API Documentation)

Package org.apache.catalina.webresources

## Class CachedResource

- java.lang.Object
- - org.apache.catalina.webresources.CachedResource

- All Implemented Interfaces:
    `WebResource`

      public class CachedResource
      extends java.lang.Object
      implements WebResource

  This class is designed to wrap a 'raw' WebResource and providing caching for expensive operations. Inexpensive operations may be passed through to the underlying resource.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `CachedResource​(Cache cache, StandardRoot root, java.lang.String path, long ttl, int objectMaxSizeBytes, boolean usesClassLoaderResources)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `canRead()` |
    `boolean` | `delete()` |
    `boolean` | `exists()` |
    `java.lang.String` | `getCanonicalPath()` |
    `java.security.cert.Certificate[]` | `getCertificates()` |
    `java.net.URL` | `getCodeBase()` |
    `byte[]` | `getContent()` |
    `long` | `getContentLength()` |
    `long` | `getCreation()` |
    `java.lang.String` | `getETag()` | Return the strong ETag if available (currently not supported) else return the weak ETag calculated from the content length and last modified.
    `java.io.InputStream` | `getInputStream()` | Obtain an InputStream based on the contents of this resource.
    `long` | `getLastModified()` |
    `java.lang.String` | `getLastModifiedHttp()` |
    `java.util.jar.Manifest` | `getManifest()` |
    `java.lang.String` | `getMimeType()` |
    `java.lang.String` | `getName()` |
    `protected long` | `getNextCheck()` |
    `java.net.URL` | `getURL()` |
    `java.lang.String` | `getWebappPath()` |
    `WebResourceRoot` | `getWebResourceRoot()` |
    `boolean` | `isDirectory()` |
    `boolean` | `isFile()` |
    `boolean` | `isVirtual()` | Indicates if this resource is required for applications to correctly scan the file structure but that does not exist in either the main or any additional `WebResourceSet`.
    `void` | `setMimeType​(java.lang.String mimeType)` | Set the MIME type for this Resource.
    `protected boolean` | `validateResource​(boolean useClassLoaderResources)` |
    `protected boolean` | `validateResources​(boolean useClassLoaderResources)` |

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

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

- - ### Constructor Detail

    - #### CachedResource

          public CachedResource​(Cache cache,
                                StandardRoot root,
                                java.lang.String path,
                                long ttl,
                                int objectMaxSizeBytes,
                                boolean usesClassLoaderResources)

  - ### Method Detail

    - #### validateResource

          protected boolean validateResource​(boolean useClassLoaderResources)

    - #### validateResources

          protected boolean validateResources​(boolean useClassLoaderResources)

    - #### getNextCheck

          protected long getNextCheck()

    - #### getLastModified

          public long getLastModified()

      Specified by:
        `getLastModified` in interface `WebResource`
      Returns:
        `File.lastModified()`.

    - #### getLastModifiedHttp

          public java.lang.String getLastModifiedHttp()

      Specified by:
        `getLastModifiedHttp` in interface `WebResource`
      Returns:
        the last modified time of this resource in the correct format for the HTTP Last-Modified header as specified by RFC 2616.

    - #### exists

          public boolean exists()

      Specified by:
        `exists` in interface `WebResource`
      Returns:
        `File.exists()`.

    - #### isVirtual

          public boolean isVirtual()

      Description copied from interface: `WebResource`
      Indicates if this resource is required for applications to correctly scan the file structure but that does not exist in either the main or any additional `WebResourceSet`. For example, if an external directory is mapped to /WEB-INF/lib in an otherwise empty web application, /WEB-INF will be represented as a virtual resource.
      Specified by:
        `isVirtual` in interface `WebResource`
      Returns:
        `true` for a virtual resource

    - #### isDirectory

          public boolean isDirectory()

      Specified by:
        `isDirectory` in interface `WebResource`
      Returns:
        `File.isDirectory()`.

    - #### isFile

          public boolean isFile()

      Specified by:
        `isFile` in interface `WebResource`
      Returns:
        `File.isFile()`.

    - #### delete

          public boolean delete()

      Specified by:
        `delete` in interface `WebResource`
      Returns:
        `File.delete()`.

    - #### getName

          public java.lang.String getName()

      Specified by:
        `getName` in interface `WebResource`
      Returns:
        `File.getName()`.

    - #### getContentLength

          public long getContentLength()

      Specified by:
        `getContentLength` in interface `WebResource`
      Returns:
        `File.length()`.

    - #### getCanonicalPath

          public java.lang.String getCanonicalPath()

      Specified by:
        `getCanonicalPath` in interface `WebResource`
      Returns:
        `File.getCanonicalPath()`.

    - #### canRead

          public boolean canRead()

      Specified by:
        `canRead` in interface `WebResource`
      Returns:
        `File.canRead()`.

    - #### getWebappPath

          public java.lang.String getWebappPath()

      Specified by:
        `getWebappPath` in interface `WebResource`
      Returns:
        The path of this resource relative to the web application root. If the resource is a directory, the return value will end in '/'.

    - #### getETag

          public java.lang.String getETag()

      Description copied from interface: `WebResource`
      Return the strong ETag if available (currently not supported) else return the weak ETag calculated from the content length and last modified.
      Specified by:
        `getETag` in interface `WebResource`
      Returns:
        The ETag for this resource

    - #### setMimeType

          public void setMimeType​(java.lang.String mimeType)

      Description copied from interface: `WebResource`
      Set the MIME type for this Resource.
      Specified by:
        `setMimeType` in interface `WebResource`
      Parameters:
        `mimeType` - The mime type that will be associated with the resource

    - #### getMimeType

          public java.lang.String getMimeType()

      Specified by:
        `getMimeType` in interface `WebResource`
      Returns:
        the MIME type for this Resource.

    - #### getInputStream

          public java.io.InputStream getInputStream()

      Description copied from interface: `WebResource`
      Obtain an InputStream based on the contents of this resource.
      Specified by:
        `getInputStream` in interface `WebResource`
      Returns:
        An InputStream based on the contents of this resource or `null` if the resource does not exist or does not represent a file

    - #### getContent

          public byte[] getContent()

      Specified by:
        `getContent` in interface `WebResource`
      Returns:
        the binary content of this resource or `null` if it is not available in a byte[] because, for example, it is too big.

    - #### getCreation

          public long getCreation()

      Specified by:
        `getCreation` in interface `WebResource`
      Returns:
        The time the file was created. If not available, the result of `WebResource.getLastModified()` will be returned.

    - #### getURL

          public java.net.URL getURL()

      Specified by:
        `getURL` in interface `WebResource`
      Returns:
        a URL to access the resource or `null` if no such URL is available or if the resource does not exist.

    - #### getCodeBase

          public java.net.URL getCodeBase()

      Specified by:
        `getCodeBase` in interface `WebResource`
      Returns:
        the code base for this resource that will be used when looking up the assigned permissions for the code base in the security policy file when running under a security manager.

    - #### getCertificates

          public java.security.cert.Certificate[] getCertificates()

      Specified by:
        `getCertificates` in interface `WebResource`
      Returns:
        the certificates that were used to sign this resource to verify it or @null if none.
      See Also:
        `JarEntry.getCertificates()`

    - #### getManifest

          public java.util.jar.Manifest getManifest()

      Specified by:
        `getManifest` in interface `WebResource`
      Returns:
        the manifest associated with this resource or @null if none.
      See Also:
        `JarFile.getManifest()`

    - #### getWebResourceRoot

          public WebResourceRoot getWebResourceRoot()

      Specified by:
        `getWebResourceRoot` in interface `WebResource`
      Returns:
        a reference to the WebResourceRoot of which this WebResource is a part.