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 and Description
    `SRSCachingInterceptor(StreamableResourceSource delegate, ResourceChangeTracker tracker)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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 Detail

    - #### SRSCachingInterceptor

          public SRSCachingInterceptor(StreamableResourceSource delegate,
                                       ResourceChangeTracker tracker)

  - ### Method Detail

    - #### 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

5.6.0 - Copyright © 2003-2020 The Apache Software Foundation.