public interface DataResource
potentially
containing data. You can think of a
DataResource
as a file
but it may come from other sources than the filesystem. DataResource
is that Resource
is a very general name already occupied
by Resource
.Modifier and Type | Method and Description |
---|---|
Date |
getLastModificationDate()
This method gets the last modification date of the
DataResource if available and
supported. |
String |
getName()
This method gets the name of the resource.
|
String |
getPath()
This method gets the path of this resource.
|
long |
getSize()
This method gets the size (content-length) of this resource.
|
String |
getUri()
This method gets a string identifying this
DataResource . |
URL |
getUrl()
This method gets this resource as
URL . |
boolean |
isAvailable()
This method determines if this resource is available.
|
boolean |
isData()
This method determines if this resource has potentially data
available . |
Boolean |
isModifiedSince(Date date)
This method determines if this resource has been been modified since the given
data . |
DataResource |
navigate(String resourcePath)
This method retrieves a
DataResource pointing to the given resourcePath based on this resource.E.g. |
OutputStream |
openOutputStream()
This method opens an output-stream in order to write data to the resource.
|
InputStream |
openStream()
This method opens this resource for reading.
|
boolean isAvailable()
data can be read
. isData()
to prevent such expensive operaitons.true
if this resource is available, false
otherwise.boolean isData()
available
. Unlike
isAvailable()
this method will not invoke expensive operations like connecting to remote URLs. If this
method will return false
, then isAvailable()
would also have returned false
. However in
case of true
only isAvailable()
can guarantee if a resource really exists and contains data. E.g.
if the resource points to a File
then this method can check if it is a data-file
. So in case it points to a directory or does not exist at all in the filesystem, this method will return
false
. Please also note that this may invoke expensive operations if the according directory path points to
something like a network share. You should also be aware that the state of isData()
and
isAvailable()
can change at any time so you never have a full guarantee if some data exists or NOT.
However in most cases it is very improbable that this status changes when you read
the
resource immediately after the check.true
if this resource points to potential data, false
otherwise.String getPath()
name
of
the resource. String getName()
filename
.long getSize() throws ResourceNotAvailableException
ResourceNotAvailableException
- if this resource is NOT available
.URL getUrl() throws ResourceNotAvailableException
URL
.ResourceNotAvailableException
- if an URL can NOT be created because the represented resource does not exist.String getUri()
DataResource
. In most cases this will be the same as
string-representation
of the URL
. However this method will not throw an
exception.InputStream openStream() throws ResourceNotAvailableException, RuntimeIoException
ResourceNotAvailableException
- if this resource is NOT available
.RuntimeIoException
- if an input/output error occurred.URL.openStream()
OutputStream openOutputStream() throws ResourceNotAvailableException, ResourceNotWritableException, RuntimeIoException
OutputStream
to write to the resource.ResourceNotAvailableException
- if this resource is NOT available
.ResourceNotWritableException
- if the resource is NOT writable (e.g. read-only).RuntimeIoException
- if an input/output error occurred.DataResource navigate(String resourcePath) throws ResourceUriUndefinedException
DataResource
pointing to the given resourcePath
based on this resource.resourcePath
would be "../apt/sources.list"
the resulting resource would point to "/etc/apt/sources.list". folder
of this resource. This will also be the case if this resource itself is
a folder
. Due to this generic API this is the only consistent way as there are
implementations that can not easily know if they represent a folder
or a
file
or maybe even both at the same time. However, please be aware of this and
do not get confused as you might expect this to be a cd
command if invoked on
a folder
what is not exactly not the case (instead it is a
cd
on the parent folder). On a BrowsableResource
you can use
BrowsableResource.cd(String)
instead to avoid confusion.resourcePath
- the absolute or relative path pointing to a new resource. If it is a relative path, it is
interpreted relative to the parent URI (directory) of this resource.ResourceUriUndefinedException
- if the given resourcePath
leads to an undefined or illegal URI.BrowsableResource.cd(String)
Date getLastModificationDate()
DataResource
if available
and
supported.Date
or null
if not available or supported.Copyright © 2001–2016 mmm-Team. All rights reserved.