# Class JarResourceRoot

java.lang.Object
org.apache.catalina.webresources.AbstractResource
org.apache.catalina.webresources.JarResourceRoot

All Implemented Interfaces:
  `WebResource`

public class JarResourceRoot extends AbstractResource

## Field Summary

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

`sm`

## Constructor Summary

Constructors
Constructor
Description
`JarResourceRoot(WebResourceRoot root, File base, String baseUrl, String webAppPath)`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`canRead()`
`boolean`
`delete()`
`protected InputStream`
`doGetInputStream()`
`boolean`
`exists()`
`String`
`getCanonicalPath()`
`Certificate[]`
`getCertificates()`
`URL`
`getCodeBase()`
Returns the code base for this resource.
`byte[]`
`getContent()`
`long`
`getContentLength()`
`long`
`getCreation()`
`long`
`getLastModified()`
`protected Log`
`getLog()`
`Manifest`
`getManifest()`
`String`
`getName()`
`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, getMimeType, getStrongETag, getWebappPath, getWebResourceRoot, setMimeType`

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

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

## Constructor Details

### JarResourceRoot

public JarResourceRoot(WebResourceRoot root, File base, String baseUrl, String webAppPath)

## Method Details

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

### doGetInputStream

protected InputStream doGetInputStream()

Specified by:
  `doGetInputStream` in class `AbstractResource`

### getContent

public 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.

### 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()
Description copied from interface: `WebResource`
Returns the code base for this resource.

The expectation is that this will be deprecated and then removed once the SecurityManager has been fully removed from the JRE and it has been confirmed that the JRE no longer depends on code base.

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.

### getLog

protected Log getLog()

Specified by:
  `getLog` in class `AbstractResource`

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