Class SQLiteDBManager

  • All Implemented Interfaces:
    DBManager

    public class SQLiteDBManager
    extends java.lang.Object
    implements DBManager
    Created by colby.clegg on 11/12/2015.
    • Field Detail

      • dbDir

        protected java.io.File dbDir
        The home directory that the database lives in
      • autoBackupDir

        protected java.io.File autoBackupDir
      • dbName

        protected java.lang.String dbName
        The name of the database
      • faultCount

        protected int faultCount
        Number of faulted copies to keep
      • autoBackupCount

        protected int autoBackupCount
        Number of auto-backups to keep, if autoBackupsEnabled is true
      • autoBackupDelay

        protected int autoBackupDelay
        Delay, in minutes, between checking if an auto-backup is necessary.
      • defragDelay

        protected int defragDelay
        Delay, in minutes, between defragmentation. If 0, defrag checkpoints will not be executed. *
      • autoBackupsEnabled

        protected boolean autoBackupsEnabled
        Whether or not to use any autobackups. Note that setting this to false doesn net prevent the creation of autobackups - for that you'd set autoBackupCount to zero.
      • datasource

        protected CountingDataSource datasource
        When this manager is connected, this will be a non-null reference to a javax.sql.DataSource that can be used to get connections to the database
      • newDatabase

        protected boolean newDatabase
        Flag that will be set true when this manager was started up with no database and created an initial one on connect()
    • Constructor Detail

      • SQLiteDBManager

        public SQLiteDBManager​(GatewayContext context,
                               java.io.File dbDir,
                               java.lang.String dbName)
    • Method Detail

      • getDataSource

        public javax.sql.DataSource getDataSource()
        Specified by:
        getDataSource in interface DBManager
      • onCreateInitial

        protected void onCreateInitial​(java.sql.Statement stmt)
                                throws java.sql.SQLException
        Called on creation of a new database, after the password has been set.
        Throws:
        java.sql.SQLException
      • onConnected

        protected void onConnected​(javax.sql.DataSource datasource)
                            throws java.sql.SQLException
        Called after we have been successfully connected to a sqlite database.
        Throws:
        java.sql.SQLException
      • onShutdown

        protected void onShutdown()
      • desc

        protected java.lang.String desc()
      • restoreFromDBBackup

        public void restoreFromDBBackup​(java.io.File dbFile)
                                 throws java.io.IOException
        Deletes the database files and restores the provided db file
        Specified by:
        restoreFromDBBackup in interface DBManager
        Throws:
        java.io.IOException
      • backupDatabase

        public java.io.File backupDatabase​(java.io.File targetFolder,
                                           java.lang.String baseFilename)
                                    throws java.io.IOException
        Description copied from interface: DBManager
        Creates a single-file backup of the internal db in the specified folder. The full path to the backup is returned. The filename should start with the base, but should then be identifiable by the specific db system.
        Specified by:
        backupDatabase in interface DBManager
        Throws:
        java.io.IOException
      • shutdown

        public void shutdown()
      • getDatabaseSize

        public long getDatabaseSize()
        Calculates the harddrive footprint of the files that make up this sqlite instance.
        Specified by:
        getDatabaseSize in interface DBManager
      • shutdown

        public void shutdown​(boolean compact)
        Specified by:
        shutdown in interface DBManager
      • getAutoBackupDir

        public java.io.File getAutoBackupDir()
      • setAutoBackupDir

        public void setAutoBackupDir​(java.io.File autoBackupDir)
      • getFaultCount

        public int getFaultCount()
      • setFaultCount

        public void setFaultCount​(int faultCount)
        Specified by:
        setFaultCount in interface DBManager
      • getAutoBackupCount

        public int getAutoBackupCount()
      • setAutoBackupCount

        public void setAutoBackupCount​(int autoBackupCount)
        Specified by:
        setAutoBackupCount in interface DBManager
      • isAutoBackupsEnabled

        public boolean isAutoBackupsEnabled()
      • setAutoBackupsEnabled

        public void setAutoBackupsEnabled​(boolean autoBackupsEnabled)
        Specified by:
        setAutoBackupsEnabled in interface DBManager
      • getAutoBackupDelay

        public int getAutoBackupDelay()
      • setAutoBackupDelay

        public void setAutoBackupDelay​(int autoBackupDelay)
        Specified by:
        setAutoBackupDelay in interface DBManager
      • setDefragDelay

        public void setDefragDelay​(int defragDelayMin)
        Specified by:
        setDefragDelay in interface DBManager
      • getDriver

        public SDriver getDriver()
        Description copied from interface: DBManager
        Returns the driver for the DBManager. Important: the driver holds a session, so a new instance should be created each time.
        Specified by:
        getDriver in interface DBManager