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

# Class DelegatingSRS

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

All Implemented Interfaces:
  `StreamableResourceSource`

Direct Known Subclasses:
  `CSSURLRewriter`, `JavaScriptStackMinimizeDisabler`, `SRSCachingInterceptor`, `SRSCompressingInterceptor`, `SRSMinimizingInterceptor`, `UTF8ForTextAssets`

public abstract class DelegatingSRS extends Object implements StreamableResourceSource
Base class for `StreamableResourceSource` implementations.

Since:
  5.4

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final StreamableResourceSource`
  `delegate`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `DelegatingSRS(StreamableResourceSource delegate)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Set<String>`
  `fileExtensionsForContentType(ContentType contentType)`
  Given a desired content type, identify which file extensions can be mapped to that extension based on contributed `ResourceTransformer`s that can produce the content type based for a file with that extension.
  `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.

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

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

- ## Field Details

  - ### delegate

    protected final StreamableResourceSource delegate

- ## Constructor Details

  - ### DelegatingSRS

    protected DelegatingSRS(StreamableResourceSource delegate)

- ## Method Details

  - ### fileExtensionsForContentType

    public Set<String> fileExtensionsForContentType(ContentType contentType)
    Description copied from interface: `StreamableResourceSource`
    Given a desired content type, identify which file extensions can be mapped to that extension based on contributed `ResourceTransformer`s that can produce the content type based for a file with that extension.
    Specified by:
      `fileExtensionsForContentType` in interface `StreamableResourceSource`
    Parameters:
      `contentType` - to search for (just a MIME type, such as "text/javascript")
    Returns:
      set of file extension, possibly empty, in no particular order. These are the bare extensions, e.g., "js", "coffee".

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