AbstractArchiveResource (Apache Tomcat 9.0.111 API Documentation)
Description: declaration: package: org.apache.catalina.webresources, class: AbstractArchiveResource

# 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 AbstractResource

  `sm`

- ## Constructor Summary

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

- ## Method Summary

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

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

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### AbstractArchiveResource

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

- ## Method Details

  - ### 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()