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
`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
`protected` `AbstractArchiveResource​(AbstractArchiveResourceSet archiveResourceSet, String webAppPath, String baseUrl, JarEntry jarEntry, String codeBaseUrl)`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`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()