org.tmatesoft.sqljet.core.internal.fs
Class SqlJetFileSystem

java.lang.Object
  extended by org.tmatesoft.sqljet.core.internal.fs.SqlJetFileSystem
All Implemented Interfaces:
ISqlJetFileSystem

public class SqlJetFileSystem
extends java.lang.Object
implements ISqlJetFileSystem

Default implementation of ISqlJetFileSystem.


Field Summary
static java.lang.String FS_NAME
           
 
Constructor Summary
SqlJetFileSystem()
           
 
Method Summary
 boolean access(java.io.File path, SqlJetFileAccesPermission permission)
          The flags argument to access() may be SqlJetFileAccesPermission.EXISTS to test for the existence of a file, or SqlJetFileAccesPermission.READWRITE to test whether a file is readable and writable, or SqlJetFileAccesPermission#READ to test whether a file is at least readable.
 long currentTime()
          The currentTime() method returns a Julian Day Number for the current date and time.
 boolean delete(java.io.File path, boolean sync)
          Delete the file.
 java.lang.String getFullPath(java.io.File filename)
           
 java.lang.String getName()
          The getName() returns the name of the FS module.
 java.io.File getTempFile()
           
 ISqlJetFile memJournalOpen()
          Open a memory journal file.
 ISqlJetFile open(java.io.File path, SqlJetFileType type, java.util.Set<SqlJetFileOpenPermission> permissions)
          The flags argument to open() includes all set in the flags argument to ISqlJet.open().
 byte[] randomness(int numBytes)
          The randomness() function returns numBytes bytes of good-quality randomness.
 long sleep(long microseconds)
          The sleep() method causes the calling thread to sleep for at least the number of microseconds given.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FS_NAME

public static final java.lang.String FS_NAME
Constructor Detail

SqlJetFileSystem

public SqlJetFileSystem()
Method Detail

getName

public java.lang.String getName()
Description copied from interface: ISqlJetFileSystem
The getName() returns the name of the FS module. The name must be unique across all FS modules.

Specified by:
getName in interface ISqlJetFileSystem
Returns:

open

public ISqlJetFile open(java.io.File path,
                        SqlJetFileType type,
                        java.util.Set<SqlJetFileOpenPermission> permissions)
                 throws SqlJetException
Description copied from interface: ISqlJetFileSystem
The flags argument to open() includes all set in the flags argument to ISqlJet.open(). Flags includes at least SqlJetFileOpenPermission.READWRITE and SqlJetFileOpenPermission.CREATE. If open() opens a file read-only then it sets flags in ISqlJetFile.getPermissions() to include SqlJetFileOpenPermission.READONLY. Other permissions may be set. SqlJet will also add one of the following flags to the open() call, depending on the object being opened: The file I/O implementation can use the object type flags to change the way it deals with files. For example, an application that does not care about crash recovery or rollback might make the open of a journal file a no-op. Writes to this journal would also be no-ops, and any attempt to read the journal would throws SqlJetIOException. Or the implementation might recognize that a database file will be doing page-aligned sector reads and writes in a random order and set up its I/O subsystem accordingly. SqlJet might also add one of the following flags to the open() method: The SqlJetFileOpenPermission.DELETEONCLOSE flag means the file should be deleted when it is closed. The SqlJetFileOpenPermission.DELETEONCLOSE will be set for TEMP databases, journals and for subjournals. The SqlJetFileOpenPermission.EXCLUSIVE flag means the file should be opened for exclusive access. This flag is set for all files except for the main database file.

Specified by:
open in interface ISqlJetFileSystem
Parameters:
path - File or NULL. If NULL then open() must invite its own temporary name for the file. Whenever the filename parameter is NULL it will also be the case that the flags parameter will include SqlJetFileOpenPermission.DELETEONCLOSE.
permissions - Exactly one of the SqlJetFileOpenPermission.READWRITE and SqlJetFileOpenPermission.READONLY flags must be set, and if SqlJetFileOpenPermission.CREATE is set, then SqlJetFileOpenPermission.READWRITE must also be set, and if SqlJetFileOpenPermission.EXCLUSIVE is set, then SqlJetFileOpenPermission.CREATE must also be set. if SqlJetFileOpenPermission.DELETEONCLOSE is set, then SqlJetFileOpenPermission.CREATE must also be set.
Returns:
Opened file.
Throws:
SqlJetException - If it is impossible to open file.

getTempFile

public java.io.File getTempFile()
                         throws java.io.IOException
Specified by:
getTempFile in interface ISqlJetFileSystem
Returns:
Throws:
java.io.IOException

delete

public boolean delete(java.io.File path,
                      boolean sync)
Description copied from interface: ISqlJetFileSystem
Delete the file. If the sync argument is true, sync() the directory after deleting the file.

Specified by:
delete in interface ISqlJetFileSystem
Returns:

access

public boolean access(java.io.File path,
                      SqlJetFileAccesPermission permission)
               throws SqlJetException
Description copied from interface: ISqlJetFileSystem
The flags argument to access() may be SqlJetFileAccesPermission.EXISTS to test for the existence of a file, or SqlJetFileAccesPermission.READWRITE to test whether a file is readable and writable, or SqlJetFileAccesPermission#READ to test whether a file is at least readable. The file can be a directory. Test the existance of or access permissions of file. The test performed depends on the value of flags: SqlJetFileAccesPermission.EXISTS: Return true if the file exists SqlJetFileAccesPermission.READWRITE: Return true if the file is read and writable. SqlJetFileAccesPermission#READ: Return true if the file is readable. Otherwise return false.

Specified by:
access in interface ISqlJetFileSystem
Returns:
Throws:
SqlJetException

currentTime

public long currentTime()
Description copied from interface: ISqlJetFileSystem
The currentTime() method returns a Julian Day Number for the current date and time.

Specified by:
currentTime in interface ISqlJetFileSystem
Returns:

randomness

public byte[] randomness(int numBytes)
Description copied from interface: ISqlJetFileSystem
The randomness() function returns numBytes bytes of good-quality randomness.

Specified by:
randomness in interface ISqlJetFileSystem
Returns:

sleep

public long sleep(long microseconds)
Description copied from interface: ISqlJetFileSystem
The sleep() method causes the calling thread to sleep for at least the number of microseconds given.

Specified by:
sleep in interface ISqlJetFileSystem
Returns:

memJournalOpen

public ISqlJetFile memJournalOpen()
Description copied from interface: ISqlJetFileSystem
Open a memory journal file.

Specified by:
memJournalOpen in interface ISqlJetFileSystem

getFullPath

public java.lang.String getFullPath(java.io.File filename)
                             throws SqlJetException
Specified by:
getFullPath in interface ISqlJetFileSystem
Throws:
SqlJetException