abstract class BaseStorageFactory extends java.lang.Object implements StorageFactory
| Modifier and Type | Field and Description |
|---|---|
protected java.lang.String |
canonicalName |
protected java.lang.String |
dataDirectory |
(package private) java.lang.String |
home |
protected java.lang.String |
separatedDataDirectory |
private static java.lang.String |
TEMP_DIR_PREFIX |
protected StorageFile |
tempDir |
protected java.lang.String |
tempDirPath |
protected java.lang.String |
uniqueName |
VERSION_NUMBER| Constructor and Description |
|---|
BaseStorageFactory()
Most of the initialization is done in the init method.
|
| Modifier and Type | Method and Description |
|---|---|
(package private) void |
createTempDir() |
StorageFile |
createTemporaryFile(java.lang.String prefix,
java.lang.String suffix)
Create and returns a temporary file in temporary file system of database.
|
(package private) abstract void |
doInit() |
java.lang.String |
getCanonicalName()
Get the canonical name of the database.
|
char |
getSeparator()
Get the pathname separator character used by the StorageFile implementation.
|
int |
getStorageFactoryVersion() |
StorageFile |
getTempDir()
Get the abstract name of the directory that holds temporary files.
|
void |
init(java.lang.String home,
java.lang.String databaseName,
java.lang.String tempDirName,
java.lang.String uniqueName)
Classes implementing the StorageFactory interface must have a null
constructor.
|
boolean |
isFast()
This method is used to determine whether the storage is fast (RAM based) or slow (disk based).
|
boolean |
isReadOnlyDatabase()
Determine whether the database is read only.
|
(package private) abstract StorageFile |
newPersistentFile(StorageFile directoryName,
java.lang.String fileName)
Construct a persistent StorageFile from a directory and path name.
|
(package private) abstract StorageFile |
newPersistentFile(java.lang.String path)
Construct a persistent StorageFile from a path name.
|
(package private) abstract StorageFile |
newPersistentFile(java.lang.String directoryName,
java.lang.String fileName)
Construct a persistent StorageFile from a directory and path name.
|
StorageFile |
newStorageFile(StorageFile directoryName,
java.lang.String fileName)
Construct a StorageFile from a directory and file name.
|
StorageFile |
newStorageFile(java.lang.String path)
Construct a StorageFile from a path name.
|
StorageFile |
newStorageFile(java.lang.String directoryName,
java.lang.String fileName)
Construct a StorageFile from a directory and file name.
|
private java.lang.String |
readOnlyTempRoot() |
void |
setCanonicalName(java.lang.String name)
Set the canonicalName.
|
void |
shutdown()
The shutdown method is called during the normal shutdown of the database.
|
boolean |
supportsRandomAccess()
Determine whether the storage supports random access.
|
java.lang.String home
protected StorageFile tempDir
protected java.lang.String tempDirPath
protected java.lang.String dataDirectory
protected java.lang.String separatedDataDirectory
protected java.lang.String uniqueName
protected java.lang.String canonicalName
private static final java.lang.String TEMP_DIR_PREFIX
BaseStorageFactory()
public void init(java.lang.String home,
java.lang.String databaseName,
java.lang.String tempDirName,
java.lang.String uniqueName)
throws java.io.IOException
init in interface StorageFactoryhome - The name of the directory containing the database. It comes from the system.home system property.
It may be null. A storage factory may decide to ignore this parameter. (For instance the classpath
storage factory ignores it.databaseName - The name of the database (directory). All relative pathnames are relative to this directory.
If null then the storage factory will only be used to deal with the directory containing
the databases.tempDirName - The name of the temporary file directory set in properties. If null then a default
directory should be used. Each database should get a separate temporary file
directory within this one to avoid collisions.uniqueName - A unique name that can be used to create the temporary file directory for this database.java.io.IOException - on an error (unexpected).abstract void doInit()
throws java.io.IOException
java.io.IOExceptionpublic void shutdown()
StorageFactoryshutdown in interface StorageFactorypublic java.lang.String getCanonicalName()
throws java.io.IOException
getCanonicalName in interface StorageFactoryjava.io.IOException - if an IO error occurred during the construction of the name.public void setCanonicalName(java.lang.String name)
setCanonicalName in interface StorageFactoryname - uniquely identifiable name for this databasepublic StorageFile newStorageFile(java.lang.String path)
newStorageFile in interface StorageFactorypath - The path name of the filepublic StorageFile newStorageFile(java.lang.String directoryName, java.lang.String fileName)
newStorageFile in interface StorageFactorydirectoryName - The directory part of the path name.fileName - The name of the file within the directory.public StorageFile newStorageFile(StorageFile directoryName, java.lang.String fileName)
newStorageFile in interface StorageFactorydirectoryName - The directory part of the path name.fileName - The name of the file within the directory.abstract StorageFile newPersistentFile(java.lang.String path)
path - The path name of the file. Guaranteed not to be in the temporary file directory. If null
then the database directory should be returned.abstract StorageFile newPersistentFile(java.lang.String directoryName, java.lang.String fileName)
directoryName - The path name of the directory. Guaranteed not to be in the temporary file directory.
Guaranteed not to be nullfileName - The name of the file within the directory. Guaranteed not to be null.abstract StorageFile newPersistentFile(StorageFile directoryName, java.lang.String fileName)
directoryName - The path name of the directory. Guaranteed not to be to be null. Guaranteed to be
created by a call to one of the newPersistentFile methods.fileName - The name of the file within the directory. Guaranteed not to be null.public char getSeparator()
getSeparator in interface StorageFactorypublic StorageFile getTempDir()
getTempDir in interface StorageFactorypublic boolean isFast()
isFast in interface StorageFactorypublic boolean isReadOnlyDatabase()
StorageFactoryisReadOnlyDatabase in interface StorageFactorypublic boolean supportsRandomAccess()
supportsRandomAccess in interface StorageFactoryvoid createTempDir()
throws java.io.IOException
java.io.IOExceptionprivate java.lang.String readOnlyTempRoot()
throws java.io.IOException
java.io.IOExceptionpublic int getStorageFactoryVersion()
getStorageFactoryVersion in interface StorageFactorypublic StorageFile createTemporaryFile(java.lang.String prefix, java.lang.String suffix) throws java.io.IOException
createTemporaryFile in interface StorageFactoryprefix - String to prefix the random name generator.suffix - String to suffix the random name generator.java.io.IOExceptionApache Derby V10.10 Internals - Copyright © 2004,2014 The Apache Software Foundation. All Rights Reserved.