AbstractArchiveResource (Apache Tomcat 10.1.2 API Documentation)

Package org.apache.catalina.webresources

## Class AbstractArchiveResource

- java.lang.Object
- - org.apache.catalina.webresources.AbstractResource
  - - org.apache.catalina.webresources.AbstractArchiveResource

- All Implemented Interfaces:
    `WebResource`
  Direct Known Subclasses:
    `AbstractSingleArchiveResource`, `JarWarResource`

      public abstract class AbstractArchiveResource
      extends AbstractResource

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `protected class` | `AbstractArchiveResource.JarInputStreamWrapper` | This wrapper assumes that the InputStream was created from a JarFile obtained from a call to getArchiveResourceSet().openJarFile().

  - ### Field Summary

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

      `sm`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `AbstractArchiveResource​(AbstractArchiveResourceSet archiveResourceSet, String webAppPath, String baseUrl, JarEntry jarEntry, String codeBaseUrl)` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `canRead()` |
    `boolean` | `delete()` |
    `protected InputStream` | `doGetInputStream()` |
    `boolean` | `exists()` |
    `protected AbstractArchiveResourceSet` | `getArchiveResourceSet()` |
    `protected String` | `getBase()` |
    `protected String` | `getBaseUrl()` |
    `String` | `getCanonicalPath()` |
    `Certificate[]` | `getCertificates()` |
    `URL` | `getCodeBase()` |
    `byte[]` | `getContent()` |
    `long` | `getContentLength()` |
    `long` | `getCreation()` |
    `protected abstract AbstractArchiveResource.JarInputStreamWrapper` | `getJarInputStreamWrapper()` |
    `long` | `getLastModified()` |
    `Manifest` | `getManifest()` |
    `String` | `getName()` |
    `protected JarEntry` | `getResource()` |
    `URL` | `getURL()` |
    `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`.

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

      `getETag, getInputStream, getLastModifiedHttp, getLog, getMimeType, getWebappPath, getWebResourceRoot, setMimeType`

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

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

- - ### Constructor Detail

    - #### AbstractArchiveResource

          protected AbstractArchiveResource​(AbstractArchiveResourceSet archiveResourceSet,
                                            String webAppPath,
                                            String baseUrl,
                                            JarEntry jarEntry,
                                            String codeBaseUrl)

  - ### Method Detail

    - #### getArchiveResourceSet

          protected AbstractArchiveResourceSet getArchiveResourceSet()

    - #### getBase

          protected final String getBase()

    - #### getBaseUrl

          protected final String getBaseUrl()

    - #### getResource

          protected final JarEntry getResource()

    - #### getLastModified

          public long getLastModified()

      Returns:
        `File.lastModified()`.

    - #### exists

          public boolean exists()

      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.
      Returns:
        `true` for a virtual resource

    - #### isDirectory

          public boolean isDirectory()

      Returns:
        `File.isDirectory()`.

    - #### isFile

          public boolean isFile()

      Returns:
        `File.isFile()`.

    - #### delete

          public boolean delete()

      Returns:
        `File.delete()`.

    - #### getName

          public String getName()

      Returns:
        `File.getName()`.

    - #### getContentLength

          public long getContentLength()

      Returns:
        `File.length()`.

    - #### getCanonicalPath

          public String getCanonicalPath()

      Returns:
        `File.getCanonicalPath()`.

    - #### canRead

          public boolean canRead()

      Returns:
        `File.canRead()`.

    - #### getCreation

          public long getCreation()

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

    - #### getURL

          public URL getURL()

      Returns:
        a URL to access the resource or `null` if no such URL is available or if the resource does not exist.

    - #### getCodeBase

          public URL getCodeBase()

      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.

    - #### getContent

          public final byte[] getContent()

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

    - #### getCertificates

          public Certificate[] getCertificates()

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

    - #### getManifest

          public Manifest getManifest()

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

    - #### doGetInputStream

          protected final InputStream doGetInputStream()

      Specified by:
        `doGetInputStream` in class `AbstractResource`

    - #### getJarInputStreamWrapper

          protected abstract AbstractArchiveResource.JarInputStreamWrapper getJarInputStreamWrapper()