EclipseEngineOptions
Date: 2022-09-03

com.parctechnologies.eclipse

## Class EclipseEngineOptions

- java.lang.Object
- - com.parctechnologies.eclipse.EclipseEngineOptions

-     public class EclipseEngineOptions
      extends java.lang.Object

  Encapsulates a set of options which can be used to initialise a new ECLiPSe engine. When constructing an instance of EclipseEngineOptions the options settings can be read from an instance of java.util.Properties using a standard key string for each option:
  - eclipse.default-module (String) for the module to use initially for executing goals. Defaults to "eclipse".
  - eclipse.directory (String) for the path of the ECLiPSe installation. This option has no default and must be explicitly set either using a parameter File or a property.
  - eclipse.global-size (`int`) for the size of the global stack in megabytes.
  - eclipse.local-size (`int`) for the size of the local stack in megabytes.
  - eclipse.peer-name (String) for the name of the peer which represents this EclipseEngine in ECLiPSe. Defaults to "host".
  - eclipse.use-queues (`boolean`) for the "use queues" flag. Defaults to false.
  There are also set methods to explicitly set each option after the EclipseEngineOptions object has been created.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `EclipseEngineOptions()` Construct a set of EclipseEngineOptions looking up all settings in the system properties.
    `EclipseEngineOptions(java.io.File eclipseDirectory)` Construct a set of EclipseEngineOptions using a specified ECLiPSe installation and looking up all other settings in the system properties.
    `EclipseEngineOptions(java.util.Properties properties)` Construct a set of EclipseEngineOptions looking up all settings in the parameter set of properties.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `setDefaultModule(java.lang.String defaultModule)` Set the default ECLiPSe module where goals are called.
    `void` | `setEclipseDir(java.io.File eclipseDir)` Set the directory where ECLiPSe is installed.
    `void` | `setGlobalSize(int globalSize)` Set size of the ECLiPSe global stack in megabytes.
    `void` | `setLocalSize(int localSize)` Set size of the ECLiPSe local stack in megabytes.
    `void` | `setPeerName(java.lang.String peerName)` Set the peer name by which the Java side will be referenced in ECLiPSe.
    `void` | `setUseQueues(boolean useQueues)` Set the "use queues" flag.

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

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

- - ### Constructor Detail

    - #### EclipseEngineOptions

          public EclipseEngineOptions(java.io.File eclipseDirectory)

      Construct a set of EclipseEngineOptions using a specified ECLiPSe installation and looking up all other settings in the system properties. If a setting is not found in this properties list, the defaults are as listed above.
      Throws:
        `java.lang.IllegalArgumentException` - if any of the system properties does not parse to the correct type.

    - #### EclipseEngineOptions

          public EclipseEngineOptions()

      Construct a set of EclipseEngineOptions looking up all settings in the system properties. If a setting is not found in this properties list, the defaults are as listed above.
      Throws:
        `java.lang.IllegalArgumentException` - if there is not an eclipse.directory property in the system properties, or if any of the system properties does not parse to the correct type.

    - #### EclipseEngineOptions

          public EclipseEngineOptions(java.util.Properties properties)

      Construct a set of EclipseEngineOptions looking up all settings in the parameter set of properties. If a setting is not found in this properties list, the defaults are as listed above.
      Throws:
        `java.lang.IllegalArgumentException` - if there is not an eclipse.directory property in the parameter Properties, or if any of the properties does not parse to the correct type.

  - ### Method Detail

    - #### setDefaultModule

          public void setDefaultModule(java.lang.String defaultModule)

      Set the default ECLiPSe module where goals are called. If none is set, goals are called in the module 'eclipse'.

    - #### setPeerName

          public void setPeerName(java.lang.String peerName)

      Set the peer name by which the Java side will be referenced in ECLiPSe. The default setting is "host".

    - #### setEclipseDir

          public void setEclipseDir(java.io.File eclipseDir)

      Set the directory where ECLiPSe is installed. This may correspond to the ECLIPSEDIR environment variable/registry entry when using the ECLiPSe development environment.

    - #### setLocalSize

          public void setLocalSize(int localSize)

      Set size of the ECLiPSe local stack in megabytes.

    - #### setGlobalSize

          public void setGlobalSize(int globalSize)

      Set size of the ECLiPSe global stack in megabytes.

    - #### setUseQueues

          public void setUseQueues(boolean useQueues)

      Set the "use queues" flag. If true, links ECLiPSe's standard streams (stdin, stdout and stderr) to FromEclipseQueue/ToEclipseQueue objects: if false, links them to the operating system standard streams. In the false (default) case, the methods `EclipseEngine.getEclipseStdin()`, `EclipseEngine.getEclipseStdout()` and `EclipseEngine.getEclipseStderr()` will all return `null`.