Package db
Class Database
- java.lang.Object
-
- db.Database
-
- Direct Known Subclasses:
PackedDatabase,PrivateDatabase,VersionedDatabase
public abstract class Database extends java.lang.ObjectDatabasefacilitates the creation of a DBHandle for accessing a database.Public constructors are only provided for use with "Non-Versioned" databases. This class should be extended when additional management features are needed, such as for a "Versioned" database.
This class assumes exclusive control of the associated files contained within the associated database directory and relies on the proper establishment of a syncObject to midigate potential concurrent modification issues.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classDatabase.DBBufferFileManager
-
Field Summary
Fields Modifier and Type Field Description protected BufferFileManagerbfMgrprotected static java.lang.StringCHANGE_FILE_PREFIXprotected static java.lang.StringCUMULATIVE_CHANGE_FILENAMEprotected static java.lang.StringCUMULATIVE_MODMAP_FILENAMEprotected intcurrentVersionprotected static java.lang.StringDATABASE_FILE_PREFIXprotected java.io.FiledbDirprotected booleandbDirCreatedprotected DBFileListenerdbFileListenerprotected booleanisCheckOutCopyprotected booleanisVersionedprotected longlastModifiedprotected intminVersionprotected java.lang.ObjectsyncObjectprotected booleanupdateAllowedprotected static java.lang.StringVERSION_FILE_PREFIX
-
Constructor Summary
Constructors Modifier Constructor Description protectedDatabase(java.io.File dbDir)Constructor for an existing "Non-Versioned" Database.protectedDatabase(java.io.File dbDir, boolean isVersioned, boolean create)General Database Constructor.protectedDatabase(java.io.File dbDir, DBFileListener dbFileListener, boolean create)Constructor for a new or existing "Non-Versioned" Database.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static booleandeleteDir(java.io.File dir)Delete a directory and all of its contents.intgetCurrentVersion()Returns the version number associated with the latest buffer file version.longlastModified()Returns the time at which this database was last saved.longlength()Returns the length of this domain file.DBHandleopen(TaskMonitor monitor)Open the stored database for non-update use.DBHandleopenForUpdate(TaskMonitor monitor)Open the stored database for update use.voidrefresh()Scan files and update state.protected voidscanFiles(boolean repair)Scan files and update state.voidsetSynchronizationObject(java.lang.Object syncObject)Set the object to be used for synchronization.
-
-
-
Field Detail
-
DATABASE_FILE_PREFIX
protected static final java.lang.String DATABASE_FILE_PREFIX
- See Also:
- Constant Field Values
-
VERSION_FILE_PREFIX
protected static final java.lang.String VERSION_FILE_PREFIX
- See Also:
- Constant Field Values
-
CHANGE_FILE_PREFIX
protected static final java.lang.String CHANGE_FILE_PREFIX
- See Also:
- Constant Field Values
-
CUMULATIVE_CHANGE_FILENAME
protected static final java.lang.String CUMULATIVE_CHANGE_FILENAME
- See Also:
- Constant Field Values
-
CUMULATIVE_MODMAP_FILENAME
protected static final java.lang.String CUMULATIVE_MODMAP_FILENAME
- See Also:
- Constant Field Values
-
minVersion
protected int minVersion
-
currentVersion
protected int currentVersion
-
lastModified
protected long lastModified
-
isVersioned
protected boolean isVersioned
-
isCheckOutCopy
protected boolean isCheckOutCopy
-
updateAllowed
protected boolean updateAllowed
-
bfMgr
protected BufferFileManager bfMgr
-
dbDir
protected java.io.File dbDir
-
dbFileListener
protected DBFileListener dbFileListener
-
dbDirCreated
protected boolean dbDirCreated
-
syncObject
protected java.lang.Object syncObject
-
-
Constructor Detail
-
Database
protected Database(java.io.File dbDir, boolean isVersioned, boolean create) throws java.io.IOExceptionGeneral Database Constructor.- Parameters:
dbDir-isVersioned-create- if true the database will be created.- Throws:
java.io.IOException
-
Database
protected Database(java.io.File dbDir, DBFileListener dbFileListener, boolean create) throws java.io.IOExceptionConstructor for a new or existing "Non-Versioned" Database.- Parameters:
dbDir-dbFileListener- file version listenercreate-- Throws:
java.io.IOException
-
Database
protected Database(java.io.File dbDir) throws java.io.IOExceptionConstructor for an existing "Non-Versioned" Database.- Parameters:
dbDir- database directory- Throws:
java.io.IOException
-
-
Method Detail
-
setSynchronizationObject
public void setSynchronizationObject(java.lang.Object syncObject)
Set the object to be used for synchronization.- Parameters:
syncObject-
-
lastModified
public long lastModified()
Returns the time at which this database was last saved.
-
deleteDir
protected static final boolean deleteDir(java.io.File dir)
Delete a directory and all of its contents.- Parameters:
dir-- Returns:
- true if delete was successful. If false is returned, a partial delete may have occurred.
-
getCurrentVersion
public int getCurrentVersion()
Returns the version number associated with the latest buffer file version.
-
open
public DBHandle open(TaskMonitor monitor) throws java.io.IOException, CancelledException
Open the stored database for non-update use. The returned handle does not support the Save operation.- Parameters:
monitor- task monitor (may be null)- Returns:
- database handle
- Throws:
FileInUseException- thrown if unable to obtain the required database lock(s).java.io.IOException- thrown if IO error occurs.CancelledException- if cancelled by monitor
-
openForUpdate
public DBHandle openForUpdate(TaskMonitor monitor) throws java.io.IOException, CancelledException
Open the stored database for update use.- Parameters:
monitor- task monitor (may be null)- Returns:
- buffer file
- Throws:
FileInUseException- thrown if unable to obtain the required database lock(s).java.io.IOException- thrown if IO error occurs.CancelledException- if cancelled by monitor
-
length
public long length() throws java.io.IOExceptionReturns the length of this domain file. This size is the minimum disk space used for storing this file, but does not account for additional storage space used to tracks changes, etc.- Returns:
- file length
- Throws:
java.io.IOException- thrown if IO or access error occurs
-
refresh
public void refresh() throws java.io.FileNotFoundExceptionScan files and update state.- Throws:
java.io.FileNotFoundException
-
scanFiles
protected void scanFiles(boolean repair) throws java.io.FileNotFoundExceptionScan files and update state.- Parameters:
repair- if true files are repaired if needed.- Throws:
java.io.FileNotFoundException
-
-