org.apache.tapestry5.services.assets

## Interface StreamableResource

- All Known Implementing Classes:
    CompressedStreamableResource, StreamableResourceImpl

      public interface StreamableResource

  An object, derived from a `Resource`, that can be streamed (ultimately, to a client web browser). In addition, a StreamableResource may be transformed (by the stack of interceptors around `StreamableResourceSource`: this includes transforming a Resource (example: CoffeeScript to JavaScript compilation), as well as aggregation and compression.
  Since:
    5.3

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `StreamableResource` | `addResponseCustomizer(ResponseCustomizer customizer)` Returns a new StreamableResource that includes the provided customizer.
    `String` | `getChecksum()` Compute and return the checksum of the content for this asset; the checksum should be computed based on the uncompressed content.
    `CompressionStatus` | `getCompression()` Indicates if the content is compressed, or compressable.
    `ContentType` | `getContentType()` Returns the resource's content type.
    `String` | `getDescription()` Describes the underlying `Resource` (or resources} for this streamable resource; expressly used as part of the object's `toString()`.
    `long` | `getLastModified()` Returns the time the resource was last modified, with accuracy to one second (so as to match the HTTP request/response date headers).
    `ResponseCustomizer` | `getResponseCustomizer()` Returns the customizer, if any, for this resource.
    `int` | `getSize()` The size, in bytes, of the underlying bytestream.
    `InputStream` | `openStream()` Opens the content of the resource as an input stream; the caller is responsible for closing the stream after reading it.
    `void` | `streamTo(OutputStream os)` Streams the resource's content to the provided stream.
    `StreamableResource` | `withContentType(ContentType newContentType)` Returns a new StreamableResource instance with the new content type.

- - ### Method Detail

    - #### getDescription

          String getDescription()

      Describes the underlying `Resource` (or resources} for this streamable resource; expressly used as part of the object's `toString()`.

    - #### getCompression

          CompressionStatus getCompression()

      Indicates if the content is compressed, or compressable.

    - #### getContentType

          @IncompatibleChange(release="5.4",
                              details="Changed from type String to ContentType")
          ContentType getContentType()

      Returns the resource's content type.

    - #### getSize

          int getSize()

      The size, in bytes, of the underlying bytestream.

    - #### streamTo

          void streamTo(OutputStream os)
                 throws IOException

      Streams the resource's content to the provided stream. The caller is responsible for flushing or closing the output stream.
      Throws:
        `IOException`

    - #### openStream

          InputStream openStream()
                          throws IOException

      Opens the content of the resource as an input stream; the caller is responsible for closing the stream after reading it.
      Returns:
        stream of the contents of the resource
      Throws:
        `IOException`

    - #### getLastModified

          long getLastModified()

      Returns the time the resource was last modified, with accuracy to one second (so as to match the HTTP request/response date headers).

    - #### getChecksum

          String getChecksum()
                      throws IOException

      Compute and return the checksum of the content for this asset; the checksum should be computed based on the uncompressed content.
      Returns:
        checksum for uncompressed content
      Throws:
        `IOException`
      Since:
        5.4
      See Also:
        `AssetChecksumGenerator.generateChecksum(StreamableResource)`

    - #### addResponseCustomizer

          StreamableResource addResponseCustomizer(ResponseCustomizer customizer)

      Returns a new StreamableResource that includes the provided customizer. Customizers are invoked in the order they are added.
      Since:
        5.4

    - #### getResponseCustomizer

          ResponseCustomizer getResponseCustomizer()

      Returns the customizer, if any, for this resource. This may represent an aggregate customizer.
      Since:
        5.4

    - #### withContentType

          StreamableResource withContentType(ContentType newContentType)

      Returns a new StreamableResource instance with the new content type.
      Parameters:
        `newContentType` -
      Since:
        5.4

${project.version} - Copyright © 2003-2015 The Apache Software Foundation.