Package org.apache.tapestry5.internal.services.assets

# Class SRSCachingInterceptor

java.lang.Object
org.apache.tapestry5.internal.services.assets.DelegatingSRS
org.apache.tapestry5.internal.services.assets.SRSCachingInterceptor

All Implemented Interfaces:
  `StreamableResourceSource`

Direct Known Subclasses:
  `SRSCompressedCachingInterceptor`

public class SRSCachingInterceptor extends DelegatingSRS
An interceptor for the `StreamableResourceSource` service that handles caching of content.

- ## Field Summary

  ### Fields inherited from class org.apache.tapestry5.internal.services.assets.DelegatingSRS

  `delegate`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SRSCachingInterceptor(StreamableResourceSource delegate, ResourceChangeTracker tracker)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected boolean`
  `enableCache(StreamableResourceProcessing processing)`
  Returns true unless the processing is `StreamableResourceProcessing.FOR_AGGREGATION`.
  `StreamableResource`
  `getStreamableResource(Resource baseResource, StreamableResourceProcessing processing, ResourceDependencies dependencies)`
  Converts a Resource (which must be non-null and exist) into a streamable resource, along with some additional optional behaviors.
  `protected boolean`
  `isCacheable(StreamableResource resource)`
  Always returns true; a subclass may extend this to only cache the resource in some circumstances.

  ### Methods inherited from class org.apache.tapestry5.internal.services.assets.DelegatingSRS

  `fileExtensionsForContentType`

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

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

- ## Constructor Details

  - ### SRSCachingInterceptor

    public SRSCachingInterceptor(StreamableResourceSource delegate, ResourceChangeTracker tracker)

- ## Method Details

  - ### getStreamableResource

    public StreamableResource getStreamableResource(Resource baseResource, StreamableResourceProcessing processing, ResourceDependencies dependencies) throws IOException
    Description copied from interface: `StreamableResourceSource`
    Converts a Resource (which must be non-null and exist) into a streamable resource, along with some additional optional behaviors.
    Specified by:
      `getStreamableResource` in interface `StreamableResourceSource`
    Overrides:
      `getStreamableResource` in class `DelegatingSRS`
    Parameters:
      `baseResource` - the resource to convert
      `processing` - defines additional processing after the resource has been read and possibly transformed
      `dependencies` - Passed to any `ResourceTransformer` to track additional dependencies of the base resource
    Returns:
      the contents of the Resource, possibly transformed, in a streamable format.
    Throws:
      `IOException` - if the resource does not exist or a URL for the content is not available

  - ### isCacheable

    protected boolean isCacheable(StreamableResource resource)
    Always returns true; a subclass may extend this to only cache the resource in some circumstances.
    Parameters:
      `resource` -
    Returns:
      true to cache the resource

  - ### enableCache

    protected boolean enableCache(StreamableResourceProcessing processing)
    Returns true unless the processing is `StreamableResourceProcessing.FOR_AGGREGATION`. Subclasses may override. When the cache is not enabled, the request is passed on to the interceptor's `DelegatingSRS.delegate`, and no attempt is made to read or update this interceptor's cache.
    Since:
      5.3.5