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 java.lang.Object
      implements StreamableResourceSource

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `StreamableResourceSourceImpl​(java.util.Map<java.lang.String,​ResourceTransformer> configuration, ContentTypeAnalyzer contentTypeAnalyzer, CompressionAnalyzer compressionAnalyzer, ResourceChangeTracker resourceChangeTracker, AssetChecksumGenerator checksumGenerator)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.Set<java.lang.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 Detail

    - #### StreamableResourceSourceImpl

          public StreamableResourceSourceImpl​(java.util.Map<java.lang.String,​ResourceTransformer> configuration,
                                              ContentTypeAnalyzer contentTypeAnalyzer,
                                              CompressionAnalyzer compressionAnalyzer,
                                              ResourceChangeTracker resourceChangeTracker,
                                              AssetChecksumGenerator checksumGenerator)

  - ### Method Detail

    - #### fileExtensionsForContentType

          public java.util.Set<java.lang.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 java.io.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:
        `java.io.IOException` - if the resource does not exist or a URL for the content is not available