org.h2.dev.fs
Class FilePathZip2

java.lang.Object
  extended by org.h2.store.fs.FilePath
      extended by org.h2.dev.fs.FilePathZip2

public class FilePathZip2
extends FilePath

This is a read-only file system that allows to access databases stored in a .zip or .jar file. The problem of this file system is that data is always accessed as a stream. But unlike FileSystemZip, it is possible to stack file systems.


Field Summary
 
Fields inherited from class org.h2.store.fs.FilePath
name
 
Constructor Summary
FilePathZip2()
           
 
Method Summary
 boolean canWrite()
          Check if the file is writable.
 void createDirectory()
          Create a directory (all required parent directories already exist).
 boolean createFile()
          Create a new file.
 FilePath createTempFile(java.lang.String suffix, boolean deleteOnExit, boolean inTempDir)
          Create a new temporary file.
 void delete()
          Delete a file or directory if it exists.
 boolean exists()
          Checks if a file exists.
 FilePath getParent()
          Get the parent directory of a file or directory.
 FilePathZip2 getPath(java.lang.String path)
          Convert a file to a path.
 java.lang.String getScheme()
          Get the scheme (prefix) for this file provider.
 boolean isAbsolute()
          Check if the file name includes a path.
 boolean isDirectory()
          Check if it is a file or a directory.
 long lastModified()
          Get the last modified date of a file
 void moveTo(FilePath newName)
          Rename a file if this is allowed.
 java.util.ArrayList<FilePath> newDirectoryStream()
          List the files and directories in the given directory.
 java.io.InputStream newInputStream()
          Create an input stream to read from the file.
 java.io.OutputStream newOutputStream(boolean append)
          Create an output stream to write into the file.
 java.nio.channels.FileChannel open(java.lang.String mode)
          Open a random access file object.
static FilePathZip2 register()
          Register the file system.
 boolean setReadOnly()
          Disable the ability to write.
 long size()
          Get the size of a file in bytes
 FilePath toRealPath()
          Normalize a file name.
 FilePath unwrap()
          Get the unwrapped file name (without wrapper prefixes if wrapping / delegating file systems are used).
 
Methods inherited from class org.h2.store.fs.FilePath
get, getName, getNextTempFileNamePart, register, toString, unregister
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FilePathZip2

public FilePathZip2()
Method Detail

register

public static FilePathZip2 register()
Register the file system.

Returns:
the instance

getPath

public FilePathZip2 getPath(java.lang.String path)
Description copied from class: FilePath
Convert a file to a path. This is similar to java.nio.file.spi.FileSystemProvider.getPath, but may return an object even if the scheme doesn't match in case of the the default file provider.

Specified by:
getPath in class FilePath
Parameters:
path - the path
Returns:
the file path object

createDirectory

public void createDirectory()
Description copied from class: FilePath
Create a directory (all required parent directories already exist).

Specified by:
createDirectory in class FilePath

createFile

public boolean createFile()
Description copied from class: FilePath
Create a new file.

Specified by:
createFile in class FilePath
Returns:
true if creating was successful

createTempFile

public FilePath createTempFile(java.lang.String suffix,
                               boolean deleteOnExit,
                               boolean inTempDir)
                        throws java.io.IOException
Description copied from class: FilePath
Create a new temporary file.

Overrides:
createTempFile in class FilePath
Parameters:
suffix - the suffix
deleteOnExit - if the file should be deleted when the virtual machine exists
inTempDir - if the file should be stored in the temporary directory
Returns:
the name of the created file
Throws:
java.io.IOException

delete

public void delete()
Description copied from class: FilePath
Delete a file or directory if it exists. Directories may only be deleted if they are empty.

Specified by:
delete in class FilePath

exists

public boolean exists()
Description copied from class: FilePath
Checks if a file exists.

Specified by:
exists in class FilePath
Returns:
true if it exists

lastModified

public long lastModified()
Description copied from class: FilePath
Get the last modified date of a file

Specified by:
lastModified in class FilePath
Returns:
the last modified date

getParent

public FilePath getParent()
Description copied from class: FilePath
Get the parent directory of a file or directory.

Specified by:
getParent in class FilePath
Returns:
the parent directory name

isAbsolute

public boolean isAbsolute()
Description copied from class: FilePath
Check if the file name includes a path.

Specified by:
isAbsolute in class FilePath
Returns:
if the file name is absolute

unwrap

public FilePath unwrap()
Description copied from class: FilePath
Get the unwrapped file name (without wrapper prefixes if wrapping / delegating file systems are used).

Overrides:
unwrap in class FilePath
Returns:
the unwrapped path

isDirectory

public boolean isDirectory()
Description copied from class: FilePath
Check if it is a file or a directory.

Specified by:
isDirectory in class FilePath
Returns:
true if it is a directory

canWrite

public boolean canWrite()
Description copied from class: FilePath
Check if the file is writable.

Specified by:
canWrite in class FilePath
Returns:
if the file is writable

setReadOnly

public boolean setReadOnly()
Description copied from class: FilePath
Disable the ability to write.

Specified by:
setReadOnly in class FilePath
Returns:
true if the call was successful

size

public long size()
Description copied from class: FilePath
Get the size of a file in bytes

Specified by:
size in class FilePath
Returns:
the size in bytes

newDirectoryStream

public java.util.ArrayList<FilePath> newDirectoryStream()
Description copied from class: FilePath
List the files and directories in the given directory.

Specified by:
newDirectoryStream in class FilePath
Returns:
the list of fully qualified file names

toRealPath

public FilePath toRealPath()
Description copied from class: FilePath
Normalize a file name.

Specified by:
toRealPath in class FilePath
Returns:
the normalized file name

newInputStream

public java.io.InputStream newInputStream()
                                   throws java.io.IOException
Description copied from class: FilePath
Create an input stream to read from the file.

Specified by:
newInputStream in class FilePath
Returns:
the input stream
Throws:
java.io.IOException

open

public java.nio.channels.FileChannel open(java.lang.String mode)
                                   throws java.io.IOException
Description copied from class: FilePath
Open a random access file object.

Specified by:
open in class FilePath
Parameters:
mode - the access mode. Supported are r, rw, rws, rwd
Returns:
the file object
Throws:
java.io.IOException

newOutputStream

public java.io.OutputStream newOutputStream(boolean append)
Description copied from class: FilePath
Create an output stream to write into the file.

Specified by:
newOutputStream in class FilePath
Parameters:
append - if true, the file will grow, if false, the file will be truncated first
Returns:
the output stream

moveTo

public void moveTo(FilePath newName)
Description copied from class: FilePath
Rename a file if this is allowed.

Specified by:
moveTo in class FilePath
Parameters:
newName - the new fully qualified file name

getScheme

public java.lang.String getScheme()
Description copied from class: FilePath
Get the scheme (prefix) for this file provider. This is similar to java.nio.file.spi.FileSystemProvider.getScheme.

Specified by:
getScheme in class FilePath
Returns:
the scheme