public class FileResource extends AbstractBrowsableResource
BrowsableResource interface for a resource that is a regular File. | Modifier and Type | Class and Description |
|---|---|
protected class |
FileResource.FileResourceIterable
This inner class is an
Iterable of FileResources. |
protected static class |
FileResource.FileResourceIterator
This inner class is an
Iterator of FileResources. |
| Modifier and Type | Field and Description |
|---|---|
private File |
file
The
File to adapt. |
static String |
SCHEME_PREFIX
The
scheme-prefix for this type of BrowsableResource. |
| Constructor and Description |
|---|
FileResource(File file)
The constructor.
|
FileResource(String filePath)
The constructor.
|
| Modifier and Type | Method and Description |
|---|---|
BrowsableResource |
cd(String path)
|
Iterable<BrowsableResource> |
getChildResources()
This method iterates the immediate child-
resources contained in this
BrowsableResource. |
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.
|
String |
getSchemePrefix()
This method gets the scheme-prefix of absolute
URIs for this type of
DataResource. |
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 |
isData()
This method determines if this resource has potentially data
available. |
boolean |
isFolder()
This method determines if this
BrowsableResource is a folder that potentially contains other
resources. |
BrowsableResource |
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.
|
getChildResourcesequals, hashCode, isAvailable, isModifiedSince, toStringclone, finalize, getClass, notify, notifyAll, wait, wait, waitisAvailable, isModifiedSincepublic static final String SCHEME_PREFIX
scheme-prefix for this type of BrowsableResource.public FileResource(File file)
file - is the File to represent.public String getSchemePrefix()
AbstractDataResourceURIs for this type of
DataResource. The scheme-prefix has the following form: <scheme>
:<suffix> where <suffix> is the empty string or something like //.getSchemePrefix in class AbstractDataResourcepublic String getPath()
DataResourcename of
the resource. getPath in interface DataResourcegetPath in class AbstractDataResourcepublic long getSize()
throws ResourceNotAvailableException
AbstractDataResourcegetSize in interface DataResourcegetSize in class AbstractDataResourceResourceNotAvailableException - if this resource is NOT available.public InputStream openStream()
AbstractDataResourceopenStream in interface DataResourceopenStream in class AbstractDataResourceURL.openStream()public OutputStream openOutputStream() throws ResourceNotWritableException
DataResourceopenOutputStream in interface DataResourceopenOutputStream in class AbstractDataResourceOutputStream to write to the resource.ResourceNotWritableException - if the resource is NOT writable (e.g. read-only).public URL getUrl() throws ResourceNotAvailableException
DataResourceURL.ResourceNotAvailableException - if an URL can NOT be created because the represented resource does not exist.public String getUri()
DataResourceDataResource. In most cases this will be the same as
string-representation of the URL. However this method will not throw an
exception.getUri in interface DataResourcegetUri in class AbstractDataResourcepublic String getName()
DataResourcefilename.getName in interface DataResourcegetName in class AbstractDataResourcepublic boolean isData()
DataResourceavailable. Unlike
DataResource.isAvailable() this method will not invoke expensive operations like connecting to remote URLs. If this
method will return false, then DataResource.isAvailable() would also have returned false. However in
case of true only DataResource.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 DataResource.isData() and
DataResource.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.public boolean isFolder()
BrowsableResourceBrowsableResource is a folder that potentially contains other
resources. Otherwise if this is no folder, BrowsableResource.getChildResources() will be empty
(return an empty Iterable). However BrowsableResource.getChildResources() can also be empty, if this is a folder.
BrowsableResource is containing data, please use
DataResource.isAvailable(). Please note that BrowsableResource.isFolder() and DataResource.isAvailable() can both return
true or both return false.true if this is a folder, false otherwise.public Date getLastModificationDate()
DataResourceDataResource if available and
supported.Date or null if not available or supported.public BrowsableResource navigate(String resourcePath)
DataResourceDataResource 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.BrowsableResource.cd(String)public BrowsableResource cd(String path)
BrowsableResourcepath - the absolute or relative path pointing to a new resource. If it is a relative path, it is interpreted
relative to the current URI (directory) if this is a folder and relative to the parent
URI otherwise.DataResource.navigate(String)public Iterable<BrowsableResource> getChildResources()
BrowsableResourceresources contained in this
BrowsableResource. folder, this method will always return an empty Iterable.Copyright © 2001–2016 mmm-Team. All rights reserved.