# Package `com.install4j.api.context`

This package contains classes that allow you to interact with the installer and its environment.

See the [API overview](../../api.md) for general remarks on
how to use the install4j API.

The [`Context`](Context.md) interface contains all methods that are available in both installer and uninstaller.
Concrete interfaces are [`InstallerContext`](InstallerContext.md) and [`UninstallerContext`](UninstallerContext.md).

Context objects are available as parameters in all script/expression properties in the install4j GUI.

Context objects are passed to the `install` and `uninstall` methods of
[actions](../actions/package-summary.md).
[Screens](../screens/package-summary.md) and
[form components](../formcomponents/package-summary.md)
receive an appropriate context via a setter method after they are constructed.

## Types

| Type | Kind | Description |
|---|---|---|
| [Context](Context.md) | interface | Base class for installation and uninstallation context. |
| [ControlButtonType](ControlButtonType.md) | enum | Types of navigation buttons in the user interface. |
| [DefaultUnattendedProgressInterface](DefaultUnattendedProgressInterface.md) | class | Default implementation of [`UnattendedProgressInterface`](UnattendedProgressInterface.md). |
| [FileInfo](FileInfo.md) | interface | Provides information about a file in the distribution tree. |
| [FileOptions](FileOptions.md) | class | An object that contains options for the installation and uninstallation of a file. |
| [FileSetSetup](FileSetSetup.md) | interface | This interface provides information about file sets. |
| [InstallationComponentSetup](InstallationComponentSetup.md) | interface | This interface provides information about installation components. |
| [InstallerContext](InstallerContext.md) | interface | The context provided by the installer. |
| [LauncherSetup](LauncherSetup.md) | interface | This interface provides information about launchers. |
| [LauncherType](LauncherType.md) | enum | Enumeration class that represents the different types of launchers. |
| [NotSupportedInElevationException](NotSupportedInElevationException.md) | class | Exception that is thrown if a method is called that is not supported for elevated actions. |
| [OverwriteMode](OverwriteMode.md) | enum | Enumeration class that represents the different ways how install4j can react if asked to install a file over an already existing file. |
| [ProgressInterface](ProgressInterface.md) | interface | The user notification interface during installation. |
| [RemoteCallable](RemoteCallable.md) | interface | On macOS and Windows Vista and higher, the 'require admin user' action can spawn additional installation processes that have full admin rights. |
| [UnattendedProgressInterface](UnattendedProgressInterface.md) | interface | The user notification interface during unattended installations. |
| [UninstallMode](UninstallMode.md) | enum | Enumeration class that represents the different ways how install4j can handle the uninstallation of a file. |
| [UninstallerContext](UninstallerContext.md) | interface | The context provided by the uninstaller. |
| [UserCanceledException](UserCanceledException.md) | class | Installation methods throw this exception if the user cancels an operation. |
| [WizardContext](WizardContext.md) | interface | The wizard context allows you to modify the GUI installer or uninstaller. |
| [WizardIndex](WizardIndex.md) | class | A wizard index is used to configure a display of overall installation progress on the left side of the wizard. |

