Class VersionedDatabase


  • public class VersionedDatabase
    extends Database
    VersionedDatabase corresponds to a versioned database.
    • Constructor Detail

      • VersionedDatabase

        public VersionedDatabase​(java.io.File dbDir,
                                 VersionedDBListener verDBListener)
                          throws java.io.IOException
        Constructor for an existing "Versioned" Database.
        Parameters:
        dbDir - database directory
        verDBListener -
        Throws:
        java.io.IOException
      • VersionedDatabase

        public VersionedDatabase​(java.io.File dbDir,
                                 BufferFile srcFile,
                                 VersionedDBListener verDBListener,
                                 long checkoutId,
                                 java.lang.String comment,
                                 TaskMonitor monitor)
                          throws java.io.IOException,
                                 CancelledException
        Construct a new "Versioned" Database from an existing srcFile.
        Parameters:
        dbDir -
        srcFile -
        monitor -
        Throws:
        java.io.IOException
        CancelledException
      • VersionedDatabase

        public VersionedDatabase​(java.io.File dbDir,
                                 java.io.File packedFile,
                                 VersionedDBListener verDBListener,
                                 long checkoutId,
                                 java.lang.String comment,
                                 TaskMonitor monitor)
                          throws java.io.IOException,
                                 CancelledException
        Construct a new "Versioned" Database from a packed database file
        Parameters:
        dbDir -
        packedFile -
        verDBListener -
        checkoutId -
        comment -
        monitor -
        Throws:
        java.io.IOException
        CancelledException
    • Method Detail

      • createVersionedDatabase

        public static LocalManagedBufferFile createVersionedDatabase​(java.io.File dbDir,
                                                                     int bufferSize,
                                                                     VersionedDBListener verDBListener,
                                                                     long checkoutId)
                                                              throws java.io.IOException
        Create a new database and provide the initial buffer file for writing.
        Parameters:
        dbDir -
        bufferSize -
        Returns:
        initial buffer file
        Throws:
        java.io.IOException
      • getMinimumVersion

        public int getMinimumVersion()
        Returns the version number associated with the oldest buffer file version.
      • getCurrentVersion

        public int getCurrentVersion()
        Returns the version number associated with the latest buffer file version.
        Overrides:
        getCurrentVersion in class Database
      • deleteMinimumVersion

        public void deleteMinimumVersion()
                                  throws java.io.IOException
        Delete oldest version.
        Throws:
        java.io.IOException - if an error occurs or this is the only version.
      • deleteCurrentVersion

        public void deleteCurrentVersion()
                                  throws java.io.IOException
        Delete latest version.
        Throws:
        java.io.IOException - if an error occurs or this is the only version.
      • openBufferFile

        public LocalManagedBufferFile openBufferFile​(int version,
                                                     int minChangeDataVer)
                                              throws java.io.IOException
        Open a specific version of this database for non-update use.
        Parameters:
        version - database version or LATEST_VERSION for current version
        minChangeDataVer - the minimum database version whose change data should be associated with the returned buffer file. A value of -1 indicates that change data is not required.
        Returns:
        buffer file for non-update use.
        Throws:
        java.io.IOException
      • open

        public DBHandle open​(int version,
                             int minChangeDataVer,
                             TaskMonitor monitor)
                      throws java.io.IOException
        Open a specific version of the stored database for non-update use. The returned handle does not support the Save operation.
        Parameters:
        version - database version
        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.
      • openForUpdate

        public DBHandle openForUpdate​(TaskMonitor monitor)
                               throws java.io.IOException
        Description copied from class: Database
        Open the stored database for update use.
        Overrides:
        openForUpdate in class Database
        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.
      • openBufferFileForUpdate

        public LocalManagedBufferFile openBufferFileForUpdate​(long checkoutId)
                                                       throws java.io.IOException
        Open the current version of this database for update use.
        Parameters:
        checkoutId - checkout ID
        Returns:
        updateable buffer file
        Throws:
        java.io.IOException - if update not permitted or other error occurs
      • dbMoved

        public void dbMoved​(java.io.File dbDir)
                     throws java.io.FileNotFoundException
        Following a move of the database directory, this method should be invoked if this instance will continue to be used.
        Parameters:
        dbDir - new database directory
        Throws:
        java.io.FileNotFoundException
      • scanFiles

        protected void scanFiles​(boolean repair)
                          throws java.io.FileNotFoundException
        Scan files and update state.
        Overrides:
        scanFiles in class Database
        Parameters:
        repair - if true files are repaired if needed.
        Throws:
        java.io.FileNotFoundException
      • output

        public void output​(int version,
                           java.io.File outputFile,
                           java.lang.String name,
                           int filetype,
                           java.lang.String contentType,
                           TaskMonitor monitor)
                    throws java.io.IOException,
                           CancelledException
        Output the current version of this database to a packed storage file.
        Parameters:
        outputFile - packed storage file to be written
        name - database name
        filetype - application file type
        contentType - user content type
        monitor -
        Throws:
        java.io.IOException
        CancelledException