Class OutputStreamResource

java.lang.Object
htsjdk.beta.io.bundle.BundleResourceBase
htsjdk.beta.io.bundle.OutputStreamResource
All Implemented Interfaces:
BundleResource, Serializable

public class OutputStreamResource extends BundleResourceBase
See Also:
  • Constructor Details

    • OutputStreamResource

      public OutputStreamResource(OutputStream outputStream, String displayName, String contentType)
      Create a BundleResource backed by an OutputStream, specifying a display name and content type.
      Parameters:
      outputStream - The OutputStream to use for this resource. May not be null.
      displayName - The display name for this resource. May not be null or 0-length.
      contentType - The content type for this resource. May not be null or 0-length.
    • OutputStreamResource

      public OutputStreamResource(OutputStream outputStream, String displayName, String contentType, String format)
      Create a BundleResource backed by an OutputStream, specifying a display name, content type and format.
      Parameters:
      outputStream - The OutputStream to use for this resource. May not be null.
      displayName - The display name for this resource. May not be null or 0-length.
      contentType - The content type for this resource. May not be null or 0-length.
      format - The format for this resource. May not be null or 0-length.
  • Method Details

    • getOutputStream

      public Optional<OutputStream> getOutputStream()
      Description copied from interface: BundleResource
      Get an OutputStream for this resource, or Optional.empty.
      Specified by:
      getOutputStream in interface BundleResource
      Overrides:
      getOutputStream in class BundleResourceBase
      Returns:
      an OutputStream for this resource, or Optional.empty if BundleResource.hasOutputType() is false for this resource
    • getSignatureStream

      public SignatureStream getSignatureStream(int signatureProbeLength)
      Description copied from interface: BundleResource
      Get a SignatureStream for this resource. This method requires access to the first signatureProbeLength bytes of the underlying resource. BundleResource implementations that are backed by raw streams that can only be consumed once, such as InputStreamResource, may consume and buffer a portion of the underlying resource's stream in order to allow subsequent callers of the BundleResource.getInputStream()) method to be presented with the entire stream, including the signature. Calls to this method may have the side effect of changing or resetting the current position of the underlying stream; serial calls to BundleResource.getSignatureStream(int) on the same object are not necessarily idempotent; and implementations are free to throw to prevent serial calls to this method.
      Parameters:
      signatureProbeLength - the number of bytes of the underlying resource to include in the SignatureStream stream. signatureProbeLength should be expressed in "compressed(/encrypted)" space rather than "plaintext" space. For example, a file format signature may consist of n bytes of ASCII, but for formats that use compressed streams, the codec may need access to an entire compressed block in order to inspect those n bytes. signatureProbeLength should use the compressed block size, in order to ensure that the SignatureStream contains a semantically meaningful fragment of the underlying input.
      Returns:
      a SignatureStream over the first signatureProbeLength bytes of this resource, for use with signature probing for codec resolution. Only applicable to resources for which BundleResource.hasInputType() is true.
    • hasOutputType

      public boolean hasOutputType()
      Description copied from interface: BundleResource
      Return true if this resource is backed by a type that can be used for output. Some resource types, such as InputStreamResource, can be used for input but not for output (see BundleResource.hasOutputType(). Others, such as OutputStreamResource, can be used for output but not for input. Some resource types may be suitable for both (for example see IOPathResource).

      The determination is based only on the type of the resource, and does not imply a guarantee about whether the resource is actually writeable.

      Specified by:
      hasOutputType in interface BundleResource
      Overrides:
      hasOutputType in class BundleResourceBase
      Returns:
      true if the type of this resource makes it suitable for use as target for output.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class BundleResourceBase
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class BundleResourceBase
    • toString

      public String toString()
      Overrides:
      toString in class BundleResourceBase