## install4j API documentation

## com.install4j.api.context
Interface InstallerContext

All Superinterfaces:
  Context

    public interface InstallerContext

extends Context

The context provided by the installer. In addition to the methods in the `Context` interface, this extended context offers methods that are specific to the installer.

Author:
  ej-technologies GmbH

Method Summary
`java.io.File` | `getInstallerFile()` Returns the current media file.
`java.lang.String` | `getMediaName()` Get the name of the current media file.
`boolean` | `installFile(java.io.File sourceFile, java.io.File destFile)` Installs a file.
`boolean` | `installFile(java.io.File sourceFile, java.io.File destFile, FileOptions options)` Installs a file.
`boolean` | `installFile(java.io.File sourceFile, java.io.File destFile, FileOptions options, ProgressInterface progressInterface, int fromPercent, int toPercent)` Installs a file.
`void` | `registerUninstallFile(java.io.File file)` Registers an arbitrary file for uninstallation.
`void` | `setInstallationDirectory(java.io.File installationDirectory)` Set the installation directory programmatically.

Methods inherited from interface com.install4j.api.context.Context
`addInstallerEventListener, getActionById, getActions, getActions, getAddOnApplicationId, getApplicationId, getBooleanVariable, getCompilerVariable, getDestinationFile, getDestinationFile, getDestinationFileInfo, getExternalFile, getFileSetById, getFileSets, getFirstAction, getFirstScreen, getInstallationComponentById, getInstallationComponents, getInstallationDirectory, getLanguageId, getLauncherById, getLaunchers, getMessage, getMessage, getProgressInterface, getScreenById, getScreens, getScreens, getVariable, getVariableNames, getWizardContext, goBack, goBackInHistory, goBackInHistory, goForward, gotoScreen, handleCriticalException, isCancelling, isConsole, isErrorOccured, isUnattended, registerHiddenVariable, registerResponseFileVariable, removeInstallerEventListener, runScript, setErrorOccured, setVariable, triggerReboot`

Method Detail

### setInstallationDirectory

    void setInstallationDirectory(java.io.File installationDirectory)

  Set the installation directory programmatically. Based on the configuration in the media wizard, there is a default installation directory. The "Installation directory" screen will suggest the location returned by `Context.getInstallationDirectory()` and subsequently call `setInstallationDirectory` with the user selection. To change the default installation directory, you could call this method from a "Run script" action that is added to the "Startup" screen.

  Parameters:
    `installationDirectory` - the new installation directory

### getInstallerFile

    java.io.File getInstallerFile()

  Returns the current media file. On Mac OS X it returns the base directory of the installer app bundle.

  Returns:
    the current media file. Returns `null` if you debug the installer, since there is no installer file in that case.

### getMediaName

    java.lang.String getMediaName()

  Get the name of the current media file.

  Returns:
    the original file name of the media file being installed without the file extension.

### installFile

    boolean installFile(java.io.File sourceFile,
                        java.io.File destFile)
                        throws UserCanceledException

  Installs a file. This is the same as calling `installFile(File, File, FileOptions)` with `new FileOptions(sourceFile.lastModified())`. The uninstaller will uninstall a file that has been installed with this method. The overwrite mode will be `OverwriteMode.ALWAYS_ASK_EXCEPT_FOR_UPDATE` and the uninstaller mode `UninstallMode.IF_CREATED`.

  Parameters:
    `sourceFile` - the file to be installed.
    `destFile` - the destination file.
  Returns:
    whether the installation was successful or not
  Throws:
    `UserCanceledException` - if the user cancels the installation.

### installFile

    boolean installFile(java.io.File sourceFile,
                        java.io.File destFile,
                        FileOptions options)
                        throws UserCanceledException

  Installs a file. This is the same as calling `installFile(File, File, FileOptions, ProgressInterface, int, int)` with a `ProgressInterface` of `null`. The `FileOptions` parameter determines the overwrite and uninstall modes.

  Parameters:
    `sourceFile` - the file to be installed.
    `destFile` - the destination file.
    `options` - the installation and uninstallation options.
  Returns:
    whether the installation was successful or not
  Throws:
    `UserCanceledException` - if the user cancels the installation.

### installFile

    boolean installFile(java.io.File sourceFile,
                        java.io.File destFile,
                        FileOptions options,
                        ProgressInterface progressInterface,
                        int fromPercent,
                        int toPercent)
                        throws UserCanceledException

  Installs a file. The method will try to copy the source file to the destination file. The `FileOptions` parameter determines the overwrite mode and the uninstall mode. With this method, the progress interface will be updated during the installation. Use this method if you install very large files.

  Note that the progress bar is only available if this method is called from an action and the action is associated with a screen that offers a progress interface with a progress bar, such as the "Installation" screen or the customizable "Display progress" screen.

  Parameters:
    `sourceFile` - the file to be installed.
    `destFile` - the destination file.
    `options` - the installation and uninstallation options.
    `progressInterface` - the interface for displaying progress during the file installation. The current progress interface can be obtained from `Context.getProgressInterface()`.
    `fromPercent` - the start percentage value for the file installation. The progress interface will be advanced starting with this percentage value.
    `toPercent` - the end percentage value for the file installation. The progress interface will be advanced up to this percentage value.
  Returns:
    whether the installation was successful or not
  Throws:
    `UserCanceledException` - if the user cancels the installation.

### registerUninstallFile

    void registerUninstallFile(java.io.File file)

  Registers an arbitrary file for uninstallation.

  Parameters:
    `file` - the file that should be removed when uninstalling the application.