Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.apache.derby.impl.io
Class BaseStorageFactory  view BaseStorageFactory download BaseStorageFactory.java

java.lang.Object
  extended byorg.apache.derby.impl.io.BaseStorageFactory
All Implemented Interfaces:
org.apache.derby.io.StorageFactory
Direct Known Subclasses:
CPStorageFactory, DirStorageFactory, JarStorageFactory, URLStorageFactory

abstract class BaseStorageFactory
extends java.lang.Object
implements org.apache.derby.io.StorageFactory

This class provides a base for implementations of the StorageFactory interface. It is used by the database engine to access persistent data and transaction logs under the directory (default) subsubprotocol.


Field Summary
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  org.apache.derby.io.StorageFile tempDir
           
protected  java.lang.String tempDirPath
           
protected  java.lang.String uniqueName
           
 
Fields inherited from interface org.apache.derby.io.StorageFactory
VERSION_NUMBER
 
Constructor Summary
(package private) BaseStorageFactory()
          Most of the initialization is done in the init method.
 
Method Summary
(package private)  void createTempDir()
           
(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()
           
 org.apache.derby.io.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  org.apache.derby.io.StorageFile newPersistentFile(org.apache.derby.io.StorageFile directoryName, java.lang.String fileName)
          Construct a persistent StorageFile from a directory and path name.
(package private) abstract  org.apache.derby.io.StorageFile newPersistentFile(java.lang.String path)
          Construct a persistent StorageFile from a path name.
(package private) abstract  org.apache.derby.io.StorageFile newPersistentFile(java.lang.String directoryName, java.lang.String fileName)
          Construct a persistent StorageFile from a directory and path name.
 org.apache.derby.io.StorageFile newStorageFile(org.apache.derby.io.StorageFile directoryName, java.lang.String fileName)
          Construct a StorageFile from a directory and file name.
 org.apache.derby.io.StorageFile newStorageFile(java.lang.String path)
          Construct a StorageFile from a path name.
 org.apache.derby.io.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 shutdown()
          The shutdown method is called during the normal shutdown of the database.
 boolean supportsRandomAccess()
          Determine whether the storage supports random access.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

home

java.lang.String home

tempDir

protected org.apache.derby.io.StorageFile tempDir

tempDirPath

protected java.lang.String tempDirPath

dataDirectory

protected java.lang.String dataDirectory

separatedDataDirectory

protected java.lang.String separatedDataDirectory

uniqueName

protected java.lang.String uniqueName

canonicalName

protected java.lang.String canonicalName

TEMP_DIR_PREFIX

private static final java.lang.String TEMP_DIR_PREFIX
See Also:
Constant Field Values
Constructor Detail

BaseStorageFactory

BaseStorageFactory()
Most of the initialization is done in the init method.

Method Detail

init

public void init(java.lang.String home,
                 java.lang.String databaseName,
                 java.lang.String tempDirName,
                 java.lang.String uniqueName)
          throws java.io.IOException
Classes implementing the StorageFactory interface must have a null constructor. This method is called when the database is booted up to initialize the class. It should perform all actions necessary to start the basic storage, such as creating a temporary file directory. The init method will be called once, before any other method is called, and will not be called again.

Specified by:
init in interface org.apache.derby.io.StorageFactory

doInit

abstract void doInit()
              throws java.io.IOException

shutdown

public void shutdown()
Description copied from interface: org.apache.derby.io.StorageFactory
The shutdown method is called during the normal shutdown of the database. However, the database engine cannot guarantee that shutdown will be called. If the JVM terminates abnormally then it will not be called.

Specified by:
shutdown in interface org.apache.derby.io.StorageFactory

getCanonicalName

public java.lang.String getCanonicalName()
                                  throws java.io.IOException
Get the canonical name of the database. This is a name that uniquely identifies it. It is system dependent. The normal, disk based implementation uses method java.io.File.getCanonicalPath on the directory holding the database to construct the canonical name.

Specified by:
getCanonicalName in interface org.apache.derby.io.StorageFactory

newStorageFile

public org.apache.derby.io.StorageFile newStorageFile(java.lang.String path)
Construct a StorageFile from a path name.

Specified by:
newStorageFile in interface org.apache.derby.io.StorageFactory

newStorageFile

public org.apache.derby.io.StorageFile newStorageFile(java.lang.String directoryName,
                                                      java.lang.String fileName)
Construct a StorageFile from a directory and file name.

Specified by:
newStorageFile in interface org.apache.derby.io.StorageFactory

newStorageFile

public org.apache.derby.io.StorageFile newStorageFile(org.apache.derby.io.StorageFile directoryName,
                                                      java.lang.String fileName)
Construct a StorageFile from a directory and file name.

Specified by:
newStorageFile in interface org.apache.derby.io.StorageFactory

newPersistentFile

abstract org.apache.derby.io.StorageFile newPersistentFile(java.lang.String path)
Construct a persistent StorageFile from a path name.


newPersistentFile

abstract org.apache.derby.io.StorageFile newPersistentFile(java.lang.String directoryName,
                                                           java.lang.String fileName)
Construct a persistent StorageFile from a directory and path name.


newPersistentFile

abstract org.apache.derby.io.StorageFile newPersistentFile(org.apache.derby.io.StorageFile directoryName,
                                                           java.lang.String fileName)
Construct a persistent StorageFile from a directory and path name.


getSeparator

public char getSeparator()
Get the pathname separator character used by the StorageFile implementation.

Specified by:
getSeparator in interface org.apache.derby.io.StorageFactory

getTempDir

public org.apache.derby.io.StorageFile getTempDir()
Get the abstract name of the directory that holds temporary files.

Specified by:
getTempDir in interface org.apache.derby.io.StorageFactory

isFast

public boolean isFast()
This method is used to determine whether the storage is fast (RAM based) or slow (disk based). It may be used by the database engine to determine the default size of the page cache.

Specified by:
isFast in interface org.apache.derby.io.StorageFactory

isReadOnlyDatabase

public boolean isReadOnlyDatabase()
Description copied from interface: org.apache.derby.io.StorageFactory
Determine whether the database is read only. The database engine supports read-only databases, even in file systems that are writable.

Specified by:
isReadOnlyDatabase in interface org.apache.derby.io.StorageFactory

supportsRandomAccess

public boolean supportsRandomAccess()
Determine whether the storage supports random access. If random access is not supported then it will only be accessed using InputStreams and OutputStreams (if the database is writable).

Specified by:
supportsRandomAccess in interface org.apache.derby.io.StorageFactory

createTempDir

void createTempDir()
             throws java.io.IOException

readOnlyTempRoot

private java.lang.String readOnlyTempRoot()
                                   throws java.io.IOException

getStorageFactoryVersion

public int getStorageFactoryVersion()
Specified by:
getStorageFactoryVersion in interface org.apache.derby.io.StorageFactory