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

## Class CSSURLRewriter

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

- All Implemented Interfaces:
    `StreamableResourceSource`

      public class CSSURLRewriter
      extends DelegatingSRS

  Rewrites the `url()` attributes inside a CSS (MIME type "text/css")) resource. Each `url` is expanded to a complete path; this allows for CSS aggregation, where the location of the CSS file will change (which would ordinarily break relative URLs), and for changing the relative directories of the CSS file and the image assets it may refer to (useful for incorporating a hash of the resource's content into the exposed URL). One potential problem with URL rewriting is the way that URLs for referenced resources are generated; we are somewhat banking on the fact that referenced resources are non-compressable images.
  Since:
    5.4
  See Also:
    `SymbolConstants.STRICT_CSS_URL_REWRITING`

- - ### Field Summary

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

      `delegate`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `CSSURLRewriter​(StreamableResourceSource delegate, OperationTracker tracker, AssetSource assetSource, AssetChecksumGenerator checksumGenerator, boolean strictCssUrlRewriting)` |

  - ### Method Summary

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

    - #### CSSURLRewriter

          public CSSURLRewriter​(StreamableResourceSource delegate,
                                OperationTracker tracker,
                                AssetSource assetSource,
                                AssetChecksumGenerator checksumGenerator,
                                boolean strictCssUrlRewriting)

  - ### Method Detail

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