# Interface WebResource

All Known Implementing Classes:
  `AbstractArchiveResource, AbstractResource, AbstractSingleArchiveResource, CachedResource, EmptyResource, FileResource, JarResource, JarResourceRoot, JarWarResource, VirtualResource, WarResource`

public interface WebResource
Represents a file or directory within a web application. It borrows heavily from `File`.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`canRead()`
Checks if this resource can be read.
`boolean`
`delete()`
Deletes this resource.
`boolean`
`exists()`
Checks if this resource exists.
`String`
`getCanonicalPath()`
Returns the canonical path of this resource.
`Certificate[]`
`getCertificates()`
Returns the certificates that were used to sign this resource to verify it.
`default URL`
`getCodeBase()`
Returns the code base for this resource.
`byte[]`
`getContent()`
Returns the binary content of this resource.
`long`
`getContentLength()`
Returns the content length of this resource.
`long`
`getCreation()`
Returns the creation time of this resource.
`String`
`getETag()`
Returns the weak ETag calculated from the content length and last modified.
`InputStream`
`getInputStream()`
Obtains an InputStream based on the contents of this resource.
`long`
`getLastModified()`
Returns the last modified time.
`String`
`getLastModifiedHttp()`
Returns the last modified time in HTTP format.
`Manifest`
`getManifest()`
Returns the manifest associated with this resource.
`String`
`getMimeType()`
Returns the MIME type for this Resource.
`String`
`getName()`
Returns the name of this resource.
`default String`
`getStrongETag()`
Return the strong ETag if available else return the weak ETag calculated from the content length and last modified.
`URL`
`getURL()`
Returns a URL to access this resource.
`String`
`getWebappPath()`
Returns the webapp path of this resource.
`WebResourceRoot`
`getWebResourceRoot()`
Returns a reference to the WebResourceRoot of which this WebResource is a part.
`boolean`
`isDirectory()`
Checks if this resource is a directory.
`boolean`
`isFile()`
Checks if this resource is a file.
`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(String mimeType)`
Set the MIME type for this Resource.

## Method Details

### getLastModified

long getLastModified()
Returns the last modified time.

Returns:
  `File.lastModified()`.

### getLastModifiedHttp

String getLastModifiedHttp()
Returns the last modified time in HTTP format.

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

### exists

boolean exists()
Checks if this resource exists.

Returns:
  `File.exists()`.

### isVirtual

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

boolean isDirectory()
Checks if this resource is a directory.

Returns:
  `File.isDirectory()`.

### isFile

boolean isFile()
Checks if this resource is a file.

Returns:
  `File.isFile()`.

### delete

boolean delete()
Deletes this resource.

Returns:
  `File.delete()`.

### getName

String getName()
Returns the name of this resource.

Returns:
  `File.getName()`.

### getContentLength

long getContentLength()
Returns the content length of this resource.

Returns:
  `File.length()`.

### getCanonicalPath

String getCanonicalPath()
Returns the canonical path of this resource.

Returns:
  `File.getCanonicalPath()`.

### canRead

boolean canRead()
Checks if this resource can be read.

Returns:
  `File.canRead()`.

### getWebappPath

String getWebappPath()
Returns the webapp path of this resource.

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

String getETag()
Returns the weak ETag calculated from the content length and last modified.

Returns:
  The ETag for this resource

### getStrongETag

default String getStrongETag()
Return the strong ETag if available else return the weak ETag calculated from the content length and last modified.

Returns:
  The ETag for this resource

### setMimeType

void setMimeType(String mimeType)
Set the MIME type for this Resource.

Parameters:
  `mimeType` - The mime type that will be associated with the resource

### getMimeType

String getMimeType()
Returns the MIME type for this Resource.

Returns:
  the MIME type for this Resource.

### getInputStream

InputStream getInputStream()
Obtains an InputStream based on the contents of this resource.

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

byte[] getContent()
Returns the binary content of this resource.

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

long getCreation()
Returns the creation time of this resource.

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

### getURL

URL getURL()
Returns a URL to access this resource.

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

### getCodeBase

default URL getCodeBase()
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.

### getWebResourceRoot

WebResourceRoot getWebResourceRoot()
Returns a reference to the WebResourceRoot of which this WebResource is a part.

Returns:
  a reference to the WebResourceRoot of which this WebResource is a part.

### getCertificates

Certificate[] getCertificates()
Returns the certificates that were used to sign this resource to verify it.

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

### getManifest

Manifest getManifest()
Returns the manifest associated with this resource.

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