public class InputStreamResource extends BundleResourceBase
BundleResource backed by an InputStream.| Constructor and Description |
|---|
InputStreamResource(java.io.InputStream inputStream,
java.lang.String displayName,
java.lang.String contentType)
Create a
BundleResource backed by an InputStream. |
InputStreamResource(java.io.InputStream inputStream,
java.lang.String displayName,
java.lang.String contentType,
java.lang.String format)
Create a
BundleResource backed by an InputStream, specifying a display name, content
type, and format. |
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(java.lang.Object o) |
java.util.Optional<java.io.InputStream> |
getInputStream()
Get an
InputStream for this resource, or Optional.empty. |
SignatureStream |
getSignatureStream(int signatureProbeLength)
Get a
SignatureStream for this resource. |
int |
hashCode() |
boolean |
hasInputType()
Return true if is this resource is backed by a type that can be used for input.
|
java.lang.String |
toString() |
getContentType, getDisplayName, getFileFormat, getIOPath, getOutputStream, getSeekableStream, hasOutputType, hasSeekableStreampublic InputStreamResource(java.io.InputStream inputStream,
java.lang.String displayName,
java.lang.String contentType)
BundleResource backed by an InputStream.
Note that it is the caller's responsibility to ensure that inputStream is closed once the
resulting resource is no longer being used.inputStream - The InputStream 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.public InputStreamResource(java.io.InputStream inputStream,
java.lang.String displayName,
java.lang.String contentType,
java.lang.String format)
BundleResource backed by an InputStream, specifying a display name, content
type, and format.
Note that it is the caller's responsibility to ensure that inputStream is closed once the
resulting resource is no longer being used.inputStream - The InputStream 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.public java.util.Optional<java.io.InputStream> getInputStream()
BundleResourceInputStream for this resource, or Optional.empty.getInputStream in interface BundleResourcegetInputStream in class BundleResourceBaseInputStream for this resource, or Optional.empty if BundleResource.hasInputType() is false for this resource.
The stream returned by this method may be buffered or use read-ahead, which may not be
suitable for applications such as index creation that need control over the position of the
underlying stream.public SignatureStream getSignatureStream(int signatureProbeLength)
BundleResourceSignatureStream 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.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.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.public boolean hasInputType()
BundleResourceInputStreamResource, 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 type is actually readable.
hasInputType in interface BundleResourcehasInputType in class BundleResourceBasepublic boolean equals(java.lang.Object o)
equals in class BundleResourceBasepublic int hashCode()
hashCode in class BundleResourceBasepublic java.lang.String toString()
toString in class BundleResourceBase