Package ghidra.app.services

# Interface EclipseIntegrationService

public interface EclipseIntegrationService
Service that provides Eclipse-related functionality.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ghidra.app.plugin.core.eclipse.EclipseConnection`
  `connectToEclipse(int port)`
  Attempts to connect to Eclipse on the given port.
  `File`
  `getEclipseDropinsDir()`
  Gets the Eclipse dropins directory.
  `File`
  `getEclipseExecutableFile()`
  Gets the Eclipse executable file.
  `ToolOptions`
  `getEclipseIntegrationOptions()`
  Gets the Eclipse Integration options.
  `File`
  `getEclipseWorkspaceDir()`
  Gets the Eclipse workspace directory.
  `void`
  `handleEclipseError(String error, boolean askAboutOptions, Throwable t)`
  Displays the given Eclipse related error message in an error dialog.
  `boolean`
  `isEclipseFeatureInstalled(FilenameFilter filter)`
  Checks to see if a feature is installed in Eclipse.
  `void`
  `offerGhidraDevInstallation(TaskMonitor monitor)`
  Offers to install GhidraDev into Eclipse's dropins directory.

- ## Method Details

  - ### getEclipseIntegrationOptions

    ToolOptions getEclipseIntegrationOptions()
    Gets the Eclipse Integration options.
    Returns:
      The Eclipse Integration options.

  - ### getEclipseExecutableFile

    File getEclipseExecutableFile() throws FileNotFoundException
    Gets the Eclipse executable file.
    Returns:
      The Eclipse executable file.
    Throws:
      `FileNotFoundException` - if the executable file does not exist.

  - ### getEclipseDropinsDir

    File getEclipseDropinsDir() throws FileNotFoundException
    Gets the Eclipse dropins directory. If it doesn't exist, it will be created.
    Returns:
      The Eclipse dropins directory.
    Throws:
      `FileNotFoundException` - if the dropins directory was not found and could not be created.

  - ### getEclipseWorkspaceDir

    File getEclipseWorkspaceDir()
    Gets the Eclipse workspace directory. If it is defined, the directory may or may not exist. If it is undefined, Eclipse will be in control of selecting a workspace directory to use.
    Returns:
      The Eclipse workspace directory. The directory may or may not exist. Could return null if the workspace directory is undefined.

  - ### isEclipseFeatureInstalled

    boolean isEclipseFeatureInstalled(FilenameFilter filter) throws FileNotFoundException
    Checks to see if a feature is installed in Eclipse.
    Parameters:
      `filter` - A filename filter that matches the feature file to check.
    Returns:
      True if the specified feature is installed.
    Throws:
      `FileNotFoundException` - if Eclipse is not installed.

  - ### connectToEclipse

    ghidra.app.plugin.core.eclipse.EclipseConnection connectToEclipse(int port)
    Attempts to connect to Eclipse on the given port. This may result in Eclipse being launched. If the launch and/or connection fails, an error message will be displayed.
    Parameters:
      `port` - The port to connect to.
    Returns:
      The (possibly failed) connection. Check the status of the `EclipseConnection` for details on the connection.

  - ### offerGhidraDevInstallation

    void offerGhidraDevInstallation(TaskMonitor monitor)
    Offers to install GhidraDev into Eclipse's dropins directory.
    Parameters:
      `monitor` - The task monitor used to cancel the installation.

  - ### handleEclipseError

    void handleEclipseError(String error, boolean askAboutOptions, Throwable t)
    Displays the given Eclipse related error message in an error dialog.
    Parameters:
      `error` - The error message to display in a dialog.
      `askAboutOptions` - True if we should ask the user if they want to be taken to the Eclipse options; otherwise, false.
      `t` - An optional throwable to tie to the message.