public class VirtualFileSystem extends Service
VirtualFileSystem
class is responsible for encapsulating
the notion of file system operations on content that is pointed to by
an URI
.
The behavior of VirtualFileSystem
can be extended by
subclasses of VirtualFileSystemHelper
. An instance of
VirtualFileSystemHelper
is registered with
VirtualFileSystem
in association with a particular
scheme. Scheme-specific behavior can thus be encapsulated by a
specific implementation of VirtualFileSystemHelper
.
IDE implementations do not need to register an implementation of this
service. The default registered implementation delegates most of its
operations to registered VirtualFileSystemHelpers.
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
FILE_SCHEME
The "file" URI scheme.
|
static java.lang.String |
HTTP_SCHEME
The "http" URI scheme.
|
static java.lang.String |
JAR_SCHEME
The "jar" URI scheme.
|
Constructor and Description |
---|
VirtualFileSystem() |
Modifier and Type | Method and Description |
---|---|
void |
addExistsTest(URIExistsTest existsTest)
Add an implementation of the
URIExistsTest interface. |
boolean |
canCreate(java.net.URI uri)
Tests whether the application can create the resource at the specified
URI . |
java.net.URI |
canonicalize(java.net.URI uri)
Returns a canonical form of the
URI , if one is available. |
boolean |
canRead(java.net.URI uri)
Tests whether the application can read the resource at the
specified
URI . |
boolean |
canWrite(java.net.URI uri)
Tests whether the application can modify the resource at the
specified
URI . |
java.net.URI |
convertSuffix(java.net.URI uri,
java.lang.String oldSuffix,
java.lang.String newSuffix)
Takes the given
URI and checks if its Object.toString()
representation ends with the specified oldSuffix . |
void |
copy(java.io.InputStream in,
java.net.URI dst)
Copies the contents of
in to dst . |
void |
copy(java.net.URI src,
java.io.File dst)
Copies the contents of
src to dst . |
void |
copy(java.net.URI src,
java.net.URI dst)
Copies the contents at
src to dst . |
java.net.URI |
createTempFile(java.lang.String prefix,
java.lang.String suffix,
java.net.URI directory)
Creates a new empty temporary file in the specified directory using the
given prefix and suffix strings to generate its name.
|
boolean |
delete(java.net.URI uri)
Deletes the resource pointed to by the specified
URI . |
java.net.URI |
ensureSuffix(java.net.URI uri,
java.lang.String suffix)
This method ensures that the specified
URI ends with the
specified suffix . |
boolean |
equals(java.net.URI uri1,
java.net.URI uri2)
Returns
true if both of the specified URI
parameters point to the same URI instance or if
both URI parameters have the same scheme and the
scheme helper determines that the URI objects are
equal. |
boolean |
exists(java.net.URI uri)
Tests whether a resource at the specified
URI location
currently exists. |
VirtualFileSystemHelper |
findHelper(java.lang.String scheme)
Returns the
VirtualFileSystemHelper class that is currently
registered to handle operations related to the specified
scheme . |
VirtualFileSystemHelper |
findHelper(java.net.URI uri)
Returns the
VirtualFileSystemHelper class that is currently
registered to handle operations related to the specified
URI . |
java.net.URI |
getBaseParent(java.net.URI uri,
java.lang.String relativeSpec)
This method gets the base directory fully containing the relative path.
|
java.lang.String |
getFileName(java.net.URI uri)
Returns the name of the file contained by the
URI , not
including any scheme, authority, directory path, query, or
fragment. |
long |
getLength(java.net.URI uri)
Returns the number of bytes contained in the resource that the
specified
URI points to. |
java.lang.String |
getName(java.net.URI uri)
Returns the name of the file contained by the
URI , not
including any scheme, authority, directory path, file extension,
query, or fragment. |
java.net.URI |
getParent(java.net.URI uri)
Returns the
URI representing the parent of the specified
URI . |
java.lang.String |
getPath(java.net.URI uri)
Returns the path part of the
URI . |
java.lang.String |
getPathNoExt(java.net.URI uri)
Returns the path part of the
URI without the last file
extension. |
java.lang.String |
getPlatformPathName(java.net.URI uri)
Returns the platform-dependent String representation of the
URI ; the returned string should be considered acceptable
for users to read. |
java.lang.String |
getSuffix(java.net.URI uri)
If a dot ('.') occurs in the filename part of the path part of
the
URI , then all of the text starting at the last dot is
returned, including the dot. |
static VirtualFileSystem |
getVirtualFileSystem()
Gets the VirtualFileSystem implementation for this IDE.
|
boolean |
hasSuffix(java.net.URI uri,
java.lang.String suffix)
Returns
true if the path part of the URI
ends with the given suffix String. |
boolean |
isBaseURIFor(java.net.URI uri1,
java.net.URI uri2)
Returns
true if uri1 represents a
a directory and uri2 points to a location within
uri1 's directory tree. |
boolean |
isBound(java.net.URI uri)
This method tests whether the specified
URI is bound to
an existing resource, which may reside in memory (not yet
saved) or already exist at the URI location. |
boolean |
isDirectory(java.net.URI uri)
Tests whether the location indicated by the
URI is
a directory resource. |
boolean |
isDirectoryPath(java.net.URI uri)
Tests whether the location indicated by the
URI
represents a directory path. |
boolean |
isHidden(java.net.URI uri)
Tests whether the resource indiciated by the
URI is a
hidden file. |
static boolean |
isLocalFileSystemCaseSensitive()
Returns
true if the local file system is case
sensitive. |
boolean |
isReadOnly(java.net.URI uri)
Returns
true if the resource is read-only. |
boolean |
isRegularFile(java.net.URI uri)
Tests whether the resource indiciated by the
URI is
a regular file. |
boolean |
isRoot(java.net.URI uri)
Returns
true if the specified URI
corresponds to the root of a file system; false
otherwise. |
boolean |
isValid(java.net.URI uri)
Tests whether the specified
URI is valid. |
long |
lastModified(java.net.URI uri)
Returns the last modified time of the resource pointed to by the
URI . |
java.net.URI[] |
list(java.net.URI uri)
Returns an array of
URI s identifying resources in
the directory resource indicated by the URI . |
java.net.URI[] |
list(java.net.URI uri,
URIFilter filter)
Returns an array of
URI s identifying resources in
the directory resource indicated by the URI ; the specified
URIFilter is applied to determine which URI s will
be returned. |
java.net.URI[] |
listRoots()
Returns an array of
URI s that represent the root resources
available. |
boolean |
mkdir(java.net.URI uri)
Creates the directory indicated by the
URI . |
boolean |
mkdirs(java.net.URI uri)
Creates the directory indicated by the specified
URI
including any necessary but nonexistent parent directories. |
java.io.InputStream |
openInputStream(java.net.URI uri)
Opens an
InputStream for the location indicated by the
specified URI . |
java.io.OutputStream |
openOutputStream(java.net.URI uri)
Opens an
OutputStream on the URI . |
void |
registerHelper(java.lang.String scheme,
VirtualFileSystemHelper helper)
Registers the specified
VirtualFileSystemHelper as the object
that can handle VirtualFileSystem operations for URI s
of the specified scheme . |
boolean |
renameTo(java.net.URI oldURI,
java.net.URI newURI)
Renames the resource indicated by the first
URI to the
name indicated by the second URI . |
boolean |
setLastModified(java.net.URI uri,
long time)
Sets the last-modified timestamp of the resource indicated by
the
URI to the time specified by time . |
boolean |
setReadOnly(java.net.URI uri,
boolean readOnly)
Sets the read-only status of the resource indicated by the
URI according to the specified readOnly
flag. |
java.lang.String |
toDisplayString(java.net.URI uri)
Returns a displayable form of the complete
URI . |
java.lang.String |
toRelativeSpec(java.net.URI uri,
java.net.URI base)
Converts a uri to a relative spec.
|
java.lang.String |
toRelativeSpec(java.net.URI uri,
java.net.URI base,
boolean mustConsumeBase)
Converts a uri to a relative spec.
|
java.net.URL |
toURL(java.net.URI uri)
Get a
URL from a URI . |
cloneLoadedServices, getService, initialize, resetAllServices, setLoadedServices
public static final java.lang.String FILE_SCHEME
public static final java.lang.String HTTP_SCHEME
public static final java.lang.String JAR_SCHEME
public void registerHelper(java.lang.String scheme, VirtualFileSystemHelper helper)
VirtualFileSystemHelper
as the object
that can handle VirtualFileSystem
operations for URI
s
of the specified scheme
.scheme
- the URI scheme to register a helper for. Must not be null
or an empty String.helper
- the helper to register for the specified scheme. Must not
be null.public VirtualFileSystemHelper findHelper(java.lang.String scheme)
VirtualFileSystemHelper
class that is currently
registered to handle operations related to the specified
scheme
. If there is no registered helper, then a
default helper is returned that can produce a default result.scheme
- the scheme to look up the helper for. Must not be null.public VirtualFileSystemHelper findHelper(java.net.URI uri)
VirtualFileSystemHelper
class that is currently
registered to handle operations related to the specified
URI
. If there is no registered helper, then a default
helper is returned that can produce a default result.uri
- a uri to find the helper for. May be null, in which case
the default helper is returned.public void addExistsTest(URIExistsTest existsTest)
URIExistsTest
interface.
The existsTest
object will be called by the
isBound()
method to determine if an URI
is unique.existsTest
- the implementation of an existence test for uris. Must
not be null.public java.net.URI canonicalize(java.net.URI uri) throws java.io.IOException
URI
, if one is available.uri
- the uri to canonicalize.java.io.IOException
- if the uri could not be canonicalized.VirtualFileSystemHelper.canonicalize( URI )
public boolean canRead(java.net.URI uri)
URI
.uri
- the uri to check.true
if and only if the specified
URI
points to a resource that exists and can be
read by the application; false
otherwise.VirtualFileSystemHelper.canRead( URI )
public boolean canWrite(java.net.URI uri)
URI
.uri
- the uri to check.true
if and only if the specified
URI
points to a file that exists and the
application is allowed to write to the file; false
otherwise.VirtualFileSystemHelper.canWrite( URI )
public boolean canCreate(java.net.URI uri)
URI
. This method tests that all components of the path can
be created. If the resource pointed by the URI
is read-only,
this method returns false
.uri
- the uri to check.true
if the resource at the specified URI
exists or can be created; false
otherwise.VirtualFileSystemHelper.canCreate( java.net.URI )
public boolean isValid(java.net.URI uri)
URI
is valid. If the resource
pointed by the URI
exists the method returns true
.
If the resource does not exist, the method tests that all components
of the path can be created.uri
- the uri to check.true
if the URI
is valid.VirtualFileSystemHelper.isValid( java.net.URI )
public java.net.URI convertSuffix(java.net.URI uri, java.lang.String oldSuffix, java.lang.String newSuffix)
URI
and checks if its Object.toString()
representation ends with the specified oldSuffix
. If
it does, the suffix is replaced with newSuffix
. Both
suffix parameters must include the leading dot ('.') if the dot is
part of the suffix. If the specified URI
does not end
with the oldSuffix
, then the newSuffix
is simply appended to the end of the original URI
.uri
- the uri to check.oldSuffix
- the old suffix to check for.newSuffix
- the new suffix to use.VirtualFileSystemHelper.convertSuffix( URI, String, String )
public void copy(java.net.URI src, java.net.URI dst) throws java.io.IOException
src
to dst
. If the
destination directory does not exist, it will be created.
IOException is thrown if:
src
- the uri of the resource to copy from. Must not be null.dst
- the uri of the resource to copy to. Must not be null.java.io.IOException
- if an error occurs copying the resource from
the old uri to the new uri.public void copy(java.io.InputStream in, java.net.URI dst) throws java.io.IOException
in
to dst
.in
- an input stream to read data from. Must not be null.dst
- a uri to copy data to. Must not be null.java.io.IOException
- if an error occurs reading or writing.public void copy(java.net.URI src, java.io.File dst) throws java.io.IOException
src
to dst
.src
- the uri of a resource to read data from. Must not be null.dst
- a file object to write data to. Must not be null.java.io.IOException
- if an error occurs copying data.public boolean delete(java.net.URI uri)
URI
. If
the resource is a file (or analogous to a file), then the file is
removed from its directory (or container). If the content is a
directory (or analogous to a directory), then the directory is
removed only if it is empty (i.e. contains no other files or
directories).uri
- the uri of the resource to delete.true
if and only if the file or directory
is successfully deleted; false
otherwise.VirtualFileSystemHelper.delete( URI )
public java.net.URI ensureSuffix(java.net.URI uri, java.lang.String suffix)
URI
ends with the
specified suffix
. The suffix does not necessarily
have to start with a ".", so if a leading "." is required, the
specified suffix must contain it -- e.g. ".java", ".class".
If the URI
already ends in the specified suffix, then
the URI
itself is returned. Otherwise, a new
URI
is created with the the specified suffix appended
to the original URI
's path part, and the new URI
is returned.
uri
- the uri to check. Must not be null.suffix
- the suffix to ensure the specified uri has. Must not be
null.URI
, based on the specified URI
, whose
path part ends with the specified suffix.public boolean equals(java.net.URI uri1, java.net.URI uri2)
true
if both of the specified URI
parameters point to the same URI
instance or if
both URI
parameters have the same scheme and the
scheme helper determines that the URI
objects are
equal.uri1
- the first uri to compare.uri2
- the second uri to compare.equals(uri1,uri2)
.VirtualFileSystemHelper.equals( URI, URI )
public boolean exists(java.net.URI uri)
URI
location
currently exists. The test for existence only checks the actual
location and does not check any in-memory caches. To employ
additional existential tests that do check in-memory caches, see
isBound(URI)
.uri
- the uri of a resource to check for existence. Must not be
null.true
if and only if a resource already exists
at the specified URI
location; false
otherwise.VirtualFileSystemHelper.exists( URI )
public java.lang.String getFileName(java.net.URI uri)
URI
, not
including any scheme, authority, directory path, query, or
fragment. This simply returns the simple filename. For example,
if you pass in an URI
whose string representation is:
scheme://userinfo@host:1010/dir1/dir2/file.ext?query#fragment
the returned value is "file.ext
" (without the
quotes).uri
- the uri to get the file name of. Must not be null.URI
. This
value should only be used for display purposes and not for opening
streams or otherwise trying to locate the document.VirtualFileSystemHelper.getFileName( URI )
public long getLength(java.net.URI uri)
URI
points to. If the length cannot be
determined, -1
is returned.uri
- the uri of the resource to get the size of. Must not be null.URI
.VirtualFileSystemHelper.getLength( URI )
public java.lang.String getName(java.net.URI uri)
URI
, not
including any scheme, authority, directory path, file extension,
query, or fragment. This simply returns the simple filename. For
example, if you pass in an URI
whose string representation
is:
scheme://userinfo@host:1010/dir1/dir2/file.ext1.ext2?query#fragment
the returned value is "file
" (without the quotes).
The returned file name should only be used for display purposes
and not for opening streams or otherwise trying to locate the
resource indicated by the URI
.
uri
- the uri to get the name of. Must not be null.VirtualFileSystemHelper.getName( URI )
public java.net.URI getParent(java.net.URI uri)
URI
representing the parent of the specified
URI
. If there is no parent then null
is returned.uri
- the uri of the resource to get the parent of. Must not be
null.VirtualFileSystemHelper.getParent( URI )
public java.lang.String getPath(java.net.URI uri)
URI
. The returned string
is acceptable to use in one of the URIFactory
methods
that takes a path.
This implementation delegates to URI.getPath()
.
uri
- the uri to get the path of. Must not be null.VirtualFileSystemHelper.getPath( URI )
public java.lang.String getPathNoExt(java.net.URI uri)
URI
without the last file
extension. To clarify, the following examples demonstrate the
different cases:
URI |
String
|
/dir/file.ext |
/dir/file |
/dir/file.ext1.ext2 |
/dir/file.ext1 |
/dir1.ext1/dir2.ext2/file.ext1.ext2 |
/dir1.ext1/dir2.ext2/file.ext1 |
/file.ext |
/file |
/dir.ext/file |
/dir.ext/file |
/dir/file |
/dir/file |
/file |
/file |
/.ext |
/ |
uri
- the uri to get the path of without extension. Must not be null.VirtualFileSystemHelper.getPathNoExt( URI )
public java.lang.String getPlatformPathName(java.net.URI uri)
URI
; the returned string should be considered acceptable
for users to read. In general, the returned string should omit
as many parts of the URI
as possible. For the "file"
scheme, therefore, the platform pathname should just be the
pathname alone (no scheme) using the appropriate file separator
character for the current platform. For other schemes, it may
be necessary to reformat the URI
string into a more
human-readable form. That decision is left to each
VirtualFileSystemHelper
implementation.uri
- the uri of the resource to get the platform path name of.
Must not be null.URI
in
platform-dependent notation. This value should only be used for
display purposes and not for opening streams or otherwise trying
to locate the document.VirtualFileSystemHelper.getPlatformPathName( URI )
public java.lang.String getSuffix(java.net.URI uri)
URI
, then all of the text starting at the last dot is
returned, including the dot. If the last dot is also the last
character in the path, then the dot by itself is returned. If
there is no dot in the file name (even if a dot occurs elsewhere
in the path), then the empty string is returned.Examples:
uri
- the uri to get the suffix of. Must not be null.VirtualFileSystemHelper.getSuffix( URI )
public boolean hasSuffix(java.net.URI uri, java.lang.String suffix)
true
if the path part of the URI
ends with the given suffix
String. The suffix can
be any String and doesn't necessarily have to be one that begins
with a dot ('.'). If you are trying to test whether the path
part of the URI
ends with a particular file extension,
then the suffix
parameter must begin with a '.'
character to ensure that you get the right return value.uri
- the uri to check. Must not be null.suffix
- the suffix to check for. Must not be null.VirtualFileSystemHelper.hasSuffix( URI, String )
public boolean isBaseURIFor(java.net.URI uri1, java.net.URI uri2)
true
if uri1
represents a
a directory and uri2
points to a location within
uri1
's directory tree.uri1
- the uri of a directory resource.uri2
- the uri of a resource.VirtualFileSystemHelper.isBaseURIFor( URI, URI )
public boolean isBound(java.net.URI uri)
URI
is bound to
an existing resource, which may reside in memory (not yet
saved) or already exist at the URI
location. This is
similar to exists(URI)
but differs in that additional
tests are applied that check whether the URI
is bound
to an in-memory object before the actual URI
location is
checked.
More precisely, "bound" means either that an URI
is being
used in such a way that a registered URIExistsTest
is able
to detect the URI
's usage or that a document already
exists at the URI
location as determined by exists(URI)
).
Checking for uniqueness of a newly generated URI
is the
primary use for this method.
uri
- the uri to check, must not be null.public static boolean isLocalFileSystemCaseSensitive()
true
if the local file system is case
sensitive. Returns false
if the local file system is
not case sensitive.public boolean isDirectory(java.net.URI uri)
URI
is
a directory resource.uri
- the uri to check. Must not be null.true
if and only if the location indicated
by the URI
exists and is a directory;
false
otherwise.VirtualFileSystemHelper.isDirectory( URI )
public boolean isDirectoryPath(java.net.URI uri)
URI
represents a directory path. The directory path specified by
the URI
need not exist.
This method is intended to be a higher performance version of
the isDirectory(URI)
method. Implementations of this
method should attempt to ascertain whether the specified URI
represents a directory path by simply examining the URI
itself. Time consuming i/o operations should be
avoided.
uri
- the uri to check. Must not be null.true
if the location indicated by the
URI
represents a directory path; the directory path need
not exist.VirtualFileSystemHelper.isDirectoryPath( URI )
public boolean isHidden(java.net.URI uri)
URI
is a
hidden file. The exact definition of hidden is
scheme-dependent and possibly system-dependent. On UNIX
systems, a file is considered to be hidden if its name begins
with a period character ('.'). On Win32 systems, a file is
considered to be hidden if it has been marked as such in the
file system.uri
- the uri to check. Must not be null.VirtualFileSystemHelper.isHidden( URI )
public boolean isReadOnly(java.net.URI uri)
true
if the resource is read-only. A return
value of false
means that trying to get an
OutputStream
or trying to write to an OutputStream
based on the URI
will cause an IOException to be thrown.
If the read-only status cannot be determined for some reason,
this method returns true
.uri
- the uri of the resource to check. Must not be null.true
if the document pointed to by the
specified URI
is read-only or if the read-only status
cannot be determined; false
otherwise.VirtualFileSystemHelper.isReadOnly( URI )
public boolean isRegularFile(java.net.URI uri)
URI
is
a regular file. A regular is a file that is not a
directory and, in addition, satisfies other system-dependent
criteria.uri
- the uri of the resource to check. Must not be null.true
if and only if the resource
indicated by the URI
exists and is a normal
file.VirtualFileSystemHelper.isRegularFile( URI )
public boolean isRoot(java.net.URI uri)
true
if the specified URI
corresponds to the root of a file system; false
otherwise.uri
- the uri of a resource to check. Must not be null.public long lastModified(java.net.URI uri)
URI
. The returned long
is the number of
milliseconds since the epoch (00:00:00 GMT Jan 1, 1970). If no
timestamp is available, -1
is returned.uri
- the uri of the resource to get the last modified time of. Must
not be null.URI
in milliseconds since the epoch.VirtualFileSystemHelper.lastModified( URI )
public java.net.URI[] list(java.net.URI uri)
URI
s identifying resources in
the directory resource indicated by the URI
. If the specified
URI
does not represent a directory, then this method
returns null
. Otherwise, an array of URI
s
is returned, one for each file or directory in the directory.
URI
s representing the directory itself or its parent are
not included in the result. There is no guarantee that the
URI
s will be returned in any particular order.uri
- the uri of a directory resource. Must not be null.URI
s naming the files and directories
in the directory indicated by the URI
. The array will
be empty if the directory is empty. Returns null
if the URI
does not represent a directory or if an
I/O error occurs.VirtualFileSystemHelper.list( URI )
public java.net.URI[] list(java.net.URI uri, URIFilter filter)
URI
s identifying resources in
the directory resource indicated by the URI
; the specified
URIFilter
is applied to determine which URI
s will
be returned. If the specified URI
does not represent a
directory, then this method returns null
.
Otherwise, an array of URI
s is returned, one for each file
or directory in the directory that is accepted by the specified
filter. URI
s representing the directory itself or its
parent are not included in the result. There is no guarantee that
the URI
s will occur in any particular order.
If the specified URIFilter
is null
then
no filtering behavior is done.
uri
- the uri of a directory resource. Must not be null.filter
- a filter to use when retrieving the child resources
of the specified uri. May be null, in which case no filtering is done.URI
s naming the files and directories
in the directory indicated by the URI
that are accepted
by the specified URIFilter
. The array will be empty if
the directory is empty. Returns null
if the
URI
does not represent a directory or if an I/O error
occurs.VirtualFileSystemHelper.list( URI, URIFilter )
public java.net.URI[] listRoots()
URI
s that represent the root resources
available. The determination of the roots is delegated to each
registered VirtualFileSystemHelper
.VirtualFileSystemHelper
.public boolean mkdir(java.net.URI uri)
URI
.uri
- the uri of a potential directory resource. Must not be null.true
if and only if the directory was
created; false
otherwise.VirtualFileSystemHelper.mkdir( URI )
public boolean mkdirs(java.net.URI uri)
URI
including any necessary but nonexistent parent directories. Note
that if this operation fails, it may have succeeded in creating
some of the necessary parent directories. This method returns
true
if the directory was created along with all
necessary parent directories or if the directories already
exist; it returns false
otherwise.uri
- the uri of a potential directory resource. Must not be null.true
if all directories were created
successfully or exist; false
if there was a
failure somewhere.
Note that even if false
is returned, some directories
may still have been created.VirtualFileSystemHelper.mkdirs( URI )
public java.net.URI createTempFile(java.lang.String prefix, java.lang.String suffix, java.net.URI directory) throws java.io.IOException
prefix
- The prefix string to be used in generating the file's name;
must be at least three characters longsuffix
- The suffix string to be used in generating the file's
name; may be null
, in which case the
suffix ".tmp"
will be useddirectory
- The directory in which the file is to be created,
or null if the default temporary-file directory is to be usedURI
to the temporary file.java.io.IOException
- if an error occurs creating the temporary
file.VirtualFileSystemHelper.createTempFile( String, String, URI )
public java.io.InputStream openInputStream(java.net.URI uri) throws java.io.IOException
InputStream
for the location indicated by the
specified URI
.uri
- An InputStream
is opened on the given
URI
. Must not be null.InputStream
associated with the URI
.java.io.FileNotFoundException
- if the resource at the
specified URI does not exist.java.io.IOException
- if an I/O error occurs when trying to open
the InputStream
.java.net.UnknownServiceException
- (a runtime exception) if
the scheme does not support opening an InputStream
.VirtualFileSystemHelper.openInputStream( URI )
public java.io.OutputStream openOutputStream(java.net.URI uri) throws java.io.IOException
OutputStream
on the URI
. If the file
does not exist, the file should be created. If the directory
path to the file does not exist, all necessary directories
should be created.uri
- An OutputStream
is opened on the given
URI
. Must not be null.OutputStream
associated with the URI
.java.io.IOException
- if an I/O error occurs when trying to open
the OutputStream
.java.net.UnknownServiceException
- (a runtime exception)
if the scheme does not support opening an OutputStream
.VirtualFileSystemHelper.openOutputStream( URI )
public boolean renameTo(java.net.URI oldURI, java.net.URI newURI)
URI
to the
name indicated by the second URI
.
If either URI
parameter is null
or if both
of the specified URI
parameters refer to the same
resource, then the rename is not attempted and failure is
returned.
If the specified URI
parameters do not have the same
scheme, then the VirtualFileSystem
handles the rename
by first copying the resource to the destination with copy(URI, URI)
and then deleting the original
resource with delete(URI)
; if either
operation fails, then failure is returned.
Otherwise, the scheme helper is called to perform the actual
rename operation. Scheme helper implementations may therefore
assume that both URI
parameters are not
null
, do not refer to the same resource, and have
the same scheme.
If the original URI
refers to a nonexistent resource,
then the scheme helper implementations should return failure.
It is left up to the scheme helper implementations to decide
whether to overwrite the destination or return failure if the
destination URI
refers to an existing resource.
oldURI
- the URI
of the original resourcenewURI
- the desired URI
for the renamed resourcetrue
if and only if the resource is
successfully renamed; false
otherwise.public boolean setLastModified(java.net.URI uri, long time)
URI
to the time specified by time
.
The time is specified in the number of milliseconds since
the epoch (00:00:00 GMT Jan 1, 1970). The return value
indicates whether or not the setting of the timestamp
succeeded.uri
- the uri of the resource to set the last modified timesamp of.
Must not be null.time
- a last modified timestamp in milliseconds since the epoch.VirtualFileSystemHelper.setLastModified( URI, long )
public boolean setReadOnly(java.net.URI uri, boolean readOnly)
URI
according to the specified readOnly
flag. The return value indicates whether or not the setting
of the read-only flag succeeded.uri
- the uri of a resource to set the read only flag of. Must not
be null.readOnly
- whether the specified resource should be read only.VirtualFileSystemHelper.setReadOnly( URI, boolean )
public java.lang.String toDisplayString(java.net.URI uri)
URI
.uri
- the uri of a resource. Must not be null.VirtualFileSystemHelper.toDisplayString( URI )
public java.lang.String toRelativeSpec(java.net.URI uri, java.net.URI base)
uri
- the uri to convert. Must not be null.base
- the base uri.VirtualFileSystemHelper.toRelativeSpec( URI, URI )
public java.lang.String toRelativeSpec(java.net.URI uri, java.net.URI base, boolean mustConsumeBase)
uri
- the uri to convert. Must not be null.base
- the base uri.mustConsumeBase
- If mustConsumeBase
is
false
, then
this method will return a non-null
relative
spec regardless of how much of the base URI
is
consumed during the determination.VirtualFileSystemHelper.toRelativeSpec( URI, URI )
public java.net.URI getBaseParent(java.net.URI uri, java.lang.String relativeSpec)
uri
- the uri to get the base directory for.relativeSpec
- a relative path.VirtualFileSystemHelper.getBaseParent(URI, String)
public java.net.URL toURL(java.net.URI uri) throws java.net.MalformedURLException
URL
from a URI
.uri
- the URI to convert to a URL.java.net.MalformedURLException
- if the uri could not be converted into
a URL.public static VirtualFileSystem getVirtualFileSystem()