Package org.apache.tapestry5.services.assets

## Interface AssetPathConstructor

- All Known Implementing Classes:
    `AssetPathConstructorImpl`

      public interface AssetPathConstructor

  Encapsulates the logic or creating the path portion of an asset URL, including hooking the `AssetPathConverter` into the generation.
  Since:
    5.2.0
  See Also:
    `PathConstructor`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `String` | `constructAssetPath​(String virtualFolder, String path, StreamableResource resource)` | Constructs an asset URL path from the virtual folder and path (within the virtual folder).

- - ### Method Detail

    - #### constructAssetPath

          @IncompatibleChange(release="5.4",
                              details="resource parameter added, IOException may now be thrown")
          String constructAssetPath​(String virtualFolder,
                                    String path,
                                    StreamableResource resource)
                             throws IOException

      Constructs an asset URL path from the virtual folder and path (within the virtual folder). After constructing the string (and honoring the `SymbolConstants.ASSET_URL_FULL_QUALIFIED` symbol), the result is passed through the `AssetPathConverter`.
      Parameters:
        `virtualFolder` - corresponds to a `AssetRequestHandler` contributed to the AssetDispatcher service
        `path` - a path that can be used to identify the underlying `Resource` or or re-acquire the `StreamableResource`; this will be the final portion of the URL, after the appropriate prefix (based on whether the resource is compressed or not) and the checksum for the resource
        `resource` - underlying resource for the asset path; the checksum portion of the URL is obtained from the resource
      Returns:
        path portion of asset URL, which is everything needed by the `AssetDispatcher` to find and stream the resource
      Throws:
        `IOException`
      See Also:
        `StreamableResourceSource`