Class PackedDatabase


  • public class PackedDatabase
    extends Database
    PackedDatabase provides a packed form of Database which compresses a single version into a file.
    When opening a packed database, a PackedDBHandle is returned after first expanding the file into a temporary Database.
    • Field Detail

      • READ_ONLY_DIRECTORY_LOCK_FILE

        public static final java.lang.String READ_ONLY_DIRECTORY_LOCK_FILE
        Presence of the directory lock file will prevent the creation or modification of any packed database files contained within that directory or any sub-directory.
        See Also:
        Constant Field Values
    • Method Detail

      • isReadOnly

        public boolean isReadOnly()
      • getPackedDatabase

        public static PackedDatabase getPackedDatabase​(java.io.File packedDbFile,
                                                       TaskMonitor monitor)
                                                throws java.io.IOException,
                                                       CancelledException
        Get a packed database which whose unpacking will be cached if possible
        Parameters:
        packedDbFile -
        monitor -
        Returns:
        packed database which corresponds to the specified packedDbFile
        Throws:
        java.io.IOException
        CancelledException
      • getPackedDatabase

        public static PackedDatabase getPackedDatabase​(java.io.File packedDbFile,
                                                       boolean neverCache,
                                                       TaskMonitor monitor)
                                                throws java.io.IOException,
                                                       CancelledException
        Get a packed database whose unpacking may be cached if possible provided doNotCache is false.
        Parameters:
        packedDbFile -
        neverCache - if true unpacking will never be cache.
        monitor -
        Returns:
        packed database which corresponds to the specified packedDbFile
        Throws:
        java.io.IOException
        CancelledException
      • getPackedDatabase

        public static PackedDatabase getPackedDatabase​(ResourceFile packedDbFile,
                                                       boolean neverCache,
                                                       TaskMonitor monitor)
                                                throws java.io.IOException,
                                                       CancelledException
        Get a packed database whose unpacking may be cached if possible provided doNotCache is false.
        Parameters:
        packedDbFile -
        neverCache - if true unpacking will never be cache.
        monitor -
        Returns:
        packed database which corresponds to the specified packedDbFile
        Throws:
        java.io.IOException
        CancelledException
      • isReadOnlyPDBDirectory

        public static boolean isReadOnlyPDBDirectory​(ResourceFile directory)
        Check for the presence of directory read-only lock
        Parameters:
        directory -
        Returns:
        true if read-only lock exists+
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        Overrides:
        finalize in class java.lang.Object
        Throws:
        java.lang.Throwable
      • dispose

        public void dispose()
        Free resources consumed by this object. If there is an associated database handle it will be closed.
      • getContentType

        public java.lang.String getContentType()
        Returns the user defined content type associated with this database.
      • getPackedFile

        public ResourceFile getPackedFile()
        Returns the storage file associated with this packed database.
      • delete

        public void delete()
                    throws java.io.IOException
        Deletes the storage file associated with this packed database. This method should not be called while the database is open, if it is an attempt will be made to close the handle.
        Throws:
        java.io.IOException
      • delete

        public static void delete​(java.io.File packedDbFile)
                           throws java.io.IOException
        Deletes the storage file associated with this packed database.
        Throws:
        java.io.IOException
      • unpackDatabase

        public static void unpackDatabase​(BufferFileManager bfMgr,
                                          long checkinId,
                                          java.io.File packedFile,
                                          TaskMonitor monitor)
                                   throws java.io.IOException,
                                          CancelledException
        Create a new Database with data provided by an ItemDeserializer.
        Parameters:
        bfMgr - the buffer manager for the database
        checkinId - the check-in id
        packedFile - the file to unpack
        monitor - the task monitor
        Throws:
        CancelledException
        java.io.IOException
      • packDatabase

        public static void packDatabase​(DBHandle dbh,
                                        java.lang.String itemName,
                                        java.lang.String contentType,
                                        java.io.File outputFile,
                                        TaskMonitor monitor)
                                 throws CancelledException,
                                        java.io.IOException
        Serialize (i.e., pack) an open database into the specified outputFile.
        Parameters:
        dbh - open database handle
        itemName - item name to associate with packed content
        contentType - supported content type
        outputFile - packed output file to be created
        monitor - progress monitor
        Throws:
        java.io.IOException
        CancelledException - if monitor cancels operation
      • open

        public DBHandle open​(TaskMonitor monitor)
                      throws CancelledException,
                             java.io.IOException
        Description copied from class: Database
        Open the stored database for non-update use. The returned handle does not support the Save operation.
        Overrides:
        open in class Database
        Parameters:
        monitor - task monitor (may be null)
        Returns:
        database handle
        Throws:
        CancelledException - if cancelled by monitor
        FileInUseException - thrown if unable to obtain the required database lock(s).
        java.io.IOException - thrown if IO error occurs.
      • cleanupOldTempDatabases

        public static void cleanupOldTempDatabases()
        Attempt to remove all old temporary databases. Those still open by an existing process should not be removed by the operating system.