public class HttpRangeResource extends java.lang.Object implements Resource
Resource
descriptor with HttpRange
information to be used for reading selected parts of the resource.
Used as an argument for partial conversion operations in
ResourceHttpMessageConverter
.
HttpRange
Modifier and Type | Field and Description |
---|---|
private java.util.List<HttpRange> |
httpRanges |
private Resource |
resource |
Constructor and Description |
---|
HttpRangeResource(java.util.List<HttpRange> httpRanges,
Resource resource) |
Modifier and Type | Method and Description |
---|---|
long |
contentLength()
Determine the content length for this resource.
|
Resource |
createRelative(java.lang.String relativePath)
Create a resource relative to this resource.
|
boolean |
exists()
Return whether this resource actually exists in physical form.
|
java.lang.String |
getDescription()
Return a description for this resource,
to be used for error output when working with the resource.
|
java.io.File |
getFile()
Return a File handle for this resource.
|
java.lang.String |
getFilename()
Determine a filename for this resource, i.e.
|
java.util.List<HttpRange> |
getHttpRanges()
Return the list of HTTP (byte) ranges describing the requested
parts of the Resource, as provided by the HTTP Range request.
|
java.io.InputStream |
getInputStream()
Return an
InputStream . |
java.net.URI |
getURI()
Return a URI handle for this resource.
|
java.net.URL |
getURL()
Return a URL handle for this resource.
|
boolean |
isOpen()
Return whether this resource represents a handle with an open
stream.
|
boolean |
isReadable()
Return whether the contents of this resource can be read,
e.g.
|
long |
lastModified()
Determine the last-modified timestamp for this resource.
|
private final java.util.List<HttpRange> httpRanges
private final Resource resource
public final java.util.List<HttpRange> getHttpRanges()
public boolean exists()
Resource
This method performs a definitive existence check, whereas the
existence of a Resource
handle only guarantees a
valid descriptor handle.
public boolean isReadable()
Resource
InputStreamSource.getInputStream()
or Resource.getFile()
.
Will be true
for typical resource descriptors;
note that actual content reading may still fail when attempted.
However, a value of false
is a definitive indication
that the resource content cannot be read.
isReadable
in interface Resource
InputStreamSource.getInputStream()
public boolean isOpen()
Resource
Will be false
for typical resource descriptors.
public java.net.URL getURL() throws java.io.IOException
Resource
public java.net.URI getURI() throws java.io.IOException
Resource
public java.io.File getFile() throws java.io.IOException
Resource
public long contentLength() throws java.io.IOException
Resource
contentLength
in interface Resource
java.io.IOException
- if the resource cannot be resolved
(in the file system or as some other known physical resource type)public long lastModified() throws java.io.IOException
Resource
lastModified
in interface Resource
java.io.IOException
- if the resource cannot be resolved
(in the file system or as some other known physical resource type)public Resource createRelative(java.lang.String relativePath) throws java.io.IOException
Resource
createRelative
in interface Resource
relativePath
- the relative path (relative to this resource)java.io.IOException
- if the relative resource cannot be determinedpublic java.lang.String getFilename()
Resource
Returns null
if this type of resource does not
have a filename.
getFilename
in interface Resource
public java.lang.String getDescription()
Resource
Implementations are also encouraged to return this value
from their toString
method.
getDescription
in interface Resource
Object.toString()
public java.io.InputStream getInputStream() throws java.io.IOException
InputStreamSource
InputStream
.
It is expected that each call creates a fresh stream.
This requirement is particularly important when you consider an API such
as JavaMail, which needs to be able to read the stream multiple times when
creating mail attachments. For such a use case, it is required
that each getInputStream()
call returns a fresh stream.
getInputStream
in interface InputStreamSource
null
)java.io.IOException
- if the stream could not be openedMimeMessageHelper.addAttachment(String, InputStreamSource)