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

# Class StreamableResourceSourceImpl

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

All Implemented Interfaces:
  `StreamableResourceSource`

public class StreamableResourceSourceImpl extends Object implements StreamableResourceSource

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `StreamableResourceSourceImpl(Map<String,ResourceTransformer> configuration, ContentTypeAnalyzer contentTypeAnalyzer, CompressionAnalyzer compressionAnalyzer, ResourceChangeTracker resourceChangeTracker, AssetChecksumGenerator checksumGenerator)`

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

- ## Constructor Details

  - ### StreamableResourceSourceImpl

    public StreamableResourceSourceImpl(Map<String,ResourceTransformer> configuration, ContentTypeAnalyzer contentTypeAnalyzer, CompressionAnalyzer compressionAnalyzer, ResourceChangeTracker resourceChangeTracker, AssetChecksumGenerator checksumGenerator)

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