# Class AbstractResource

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

All Implemented Interfaces:
  `WebResource`

Direct Known Subclasses:
  `AbstractArchiveResource`, `FileResource`, `JarResourceRoot`

public abstract class AbstractResource extends Object implements WebResource

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected static final StringManager`
  `sm`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `AbstractResource(WebResourceRoot root, String webAppPath)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected abstract InputStream`
  `doGetInputStream()`
  `final String`
  `getETag()`
  Return the weak ETag calculated from the content length and last modified.
  `final InputStream`
  `getInputStream()`
  Obtain an InputStream based on the contents of this resource.
  `final String`
  `getLastModifiedHttp()`
  `protected abstract Log`
  `getLog()`
  `final String`
  `getMimeType()`
  `final String`
  `getStrongETag()`
  Return the strong ETag if available else return the weak ETag calculated from the content length and last modified.
  `final String`
  `getWebappPath()`
  `final WebResourceRoot`
  `getWebResourceRoot()`
  `final void`
  `setMimeType(String mimeType)`
  Set the MIME type for this Resource.

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

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

  ### Methods inherited from interface org.apache.catalina.WebResource

  `canRead, delete, exists, getCanonicalPath, getCertificates, getCodeBase, getContent, getContentLength, getCreation, getLastModified, getManifest, getName, getURL, isDirectory, isFile, isVirtual`

- ## Field Details

  - ### sm

    protected static final StringManager sm

- ## Constructor Details

  - ### AbstractResource

    protected AbstractResource(WebResourceRoot root, String webAppPath)

- ## Method Details

  - ### getWebResourceRoot

    public final WebResourceRoot getWebResourceRoot()
    Specified by:
      `getWebResourceRoot` in interface `WebResource`
    Returns:
      a reference to the WebResourceRoot of which this WebResource is a part.

  - ### getWebappPath

    public final String getWebappPath()
    Specified by:
      `getWebappPath` in interface `WebResource`
    Returns:
      The path of this resource relative to the web application root. If the resource is a directory, the return value will end in '/'.

  - ### getLastModifiedHttp

    public final String getLastModifiedHttp()
    Specified by:
      `getLastModifiedHttp` in interface `WebResource`
    Returns:
      the last modified time of this resource in the correct format for the HTTP Last-Modified header as specified by RFC 2616.

  - ### getETag

    public final String getETag()
    Description copied from interface: `WebResource`
    Return the weak ETag calculated from the content length and last modified.
    Specified by:
      `getETag` in interface `WebResource`
    Returns:
      The ETag for this resource

  - ### getStrongETag

    public final String getStrongETag()
    Description copied from interface: `WebResource`
    Return the strong ETag if available else return the weak ETag calculated from the content length and last modified.
    Specified by:
      `getStrongETag` in interface `WebResource`
    Returns:
      The ETag for this resource

  - ### setMimeType

    public final void setMimeType(String mimeType)
    Description copied from interface: `WebResource`
    Set the MIME type for this Resource.
    Specified by:
      `setMimeType` in interface `WebResource`
    Parameters:
      `mimeType` - The mime type that will be associated with the resource

  - ### getMimeType

    public final String getMimeType()
    Specified by:
      `getMimeType` in interface `WebResource`
    Returns:
      the MIME type for this Resource.

  - ### getInputStream

    public final InputStream getInputStream()
    Description copied from interface: `WebResource`
    Obtain an InputStream based on the contents of this resource.
    Specified by:
      `getInputStream` in interface `WebResource`
    Returns:
      An InputStream based on the contents of this resource or `null` if the resource does not exist or does not represent a file

  - ### doGetInputStream

    protected abstract InputStream doGetInputStream()

  - ### getLog

    protected abstract Log getLog()