Module org.hsqldb
Package org.hsqldb.lib.tar

## Class DbBackup

- java.lang.Object
- - org.hsqldb.lib.tar.DbBackup

-     public class DbBackup
      extends java.lang.Object

  Works with tar archives containing HyperSQL database instance backups. Viz, creating, examining, or extracting these archives.

  This class provides OO Tar backup-creation control. The extraction and listing features are implemented only in static fashion in the Main method, which provides a consistent interface for all three features from the command-line.

  For tar creation, the default behavior is to fail if the target archive exists, and to abort if any database change is detected. Use the JavaBean setters to changes this behavior. See the main(String[]) method for details about command-line usage.

  Since:
    2.0.0
  Author:
    Blaine Simpson (blaine dot simpson at admc dot com), Fred Toussi (fredt@users dot sourceforge.net)
  See Also:
    The database backup section of the HyperSQL User Guide, `DbBackupMain.main(String[])`, `setOverWrite(boolean)`, `setAbortUponModify(boolean)`

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DbBackup​(java.io.File archiveFile, java.lang.String dbPath)` | Instantiate a DbBackup instance for creating a Database Instance backup.
    `DbBackup​(java.io.File archiveFile, java.lang.String dbPath, boolean script)` | Used for SCRIPT backup

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `getAbortUponModify()` |
    `boolean` | `getOverWrite()` |
    `void` | `setAbortUponModify​(boolean abortUponModify)` | Defaults to true.
    `void` | `setFileIgnore​(java.lang.String fileExtension)` |
    `void` | `setOverWrite​(boolean overWrite)` | Defaults to false.
    `void` | `setStream​(java.lang.String fileExtension, InputStreamInterface is)` | Overrides file with stream.
    `void` | `write()` | This method always backs up the .properties and .script files.
    `void` | `writeAsFiles()` |

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### DbBackup

          public DbBackup​(java.io.File archiveFile,
                          java.lang.String dbPath)

      Instantiate a DbBackup instance for creating a Database Instance backup.

      Much validation is deferred until the write() method, to prevent problems with files changing between the constructor and the write call.

      Parameters:
        `archiveFile` - File
        `dbPath` - String

    - #### DbBackup

          public DbBackup​(java.io.File archiveFile,
                          java.lang.String dbPath,
                          boolean script)

      Used for SCRIPT backup
      Parameters:
        `archiveFile` - File
        `dbPath` - String
        `script` - boolean

  - ### Method Detail

    - #### setStream

          public void setStream​(java.lang.String fileExtension,
                                InputStreamInterface is)

      Overrides file with stream.
      Parameters:
        `fileExtension` - String
        `is` - InputStreamInterface

    - #### setFileIgnore

          public void setFileIgnore​(java.lang.String fileExtension)

    - #### setOverWrite

          public void setOverWrite​(boolean overWrite)

      Defaults to false.

      If arg is false, then attempts to write a tar file that already exist will abort.

      Parameters:
        `overWrite` - boolean

    - #### setAbortUponModify

          public void setAbortUponModify​(boolean abortUponModify)

      Defaults to true.

      If true, then the write() method will validate that the database is closed, and it will verify that no DB file changes between when we start writing the tar, and when we finish.

      Parameters:
        `abortUponModify` - boolean

    - #### getOverWrite

          public boolean getOverWrite()

    - #### getAbortUponModify

          public boolean getAbortUponModify()

    - #### write

          public void write()
                     throws java.io.IOException,
                            TarMalformatException

      This method always backs up the .properties and .script files. It will back up all of .backup, .data, and .log which exist.

      If abortUponModify is set, no tar file will be created, and this method will throw.

      Throws:
        `java.io.IOException` - for any of many possible I/O problems
        `TarMalformatException` - if there is a problem writin the tar file

    - #### writeAsFiles

          public void writeAsFiles()
                            throws java.io.IOException

      Throws:
        `java.io.IOException`