Package uk.ac.starlink.task

## Interface Environment

- All Known Implementing Classes:
    `LineEnvironment`, `TerminalEnvironment`

      public interface Environment

  Defines an execution environment within which tasks can operate. The main job that it does is to be able to provide a String value for a given Parameter object. Every invocation of a Task is expected to have a new Environment.
  Author:
    Mark Taylor

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `acquireValue​(Parameter<?> par)` | Obtains a legal value for a given parameter from the environment and sets the parameter's value accordingly.
    `void` | `clearValue​(Parameter<?> par)` | Clears a value for a given parameter.
    `java.io.PrintStream` | `getErrorStream()` | Returns an output stream into which error or logging output from a task can be written.
    `java.lang.String[]` | `getNames()` | Returns an array of parameter names which have been specified.
    `java.io.PrintStream` | `getOutputStream()` | Returns an output stream into which text output from a task can be written.

- - ### Method Detail

    - #### acquireValue

          void acquireValue​(Parameter<?> par)
                     throws TaskException

      Obtains a legal value for a given parameter from the environment and sets the parameter's value accordingly.

      This environment should obtain a value for the parameter `par` in whatever way it sees fit, and must then call `par`'s `Parameter.setValueFromString(uk.ac.starlink.task.Environment, java.lang.String)` method so that the parameter knows what its new value is. If the `setValueFromString` call throws a `ParameterValueException` the environment may try to get another value (for instance by re-prompting the user) or may give up and re-throw the exception.

      Parameters:
        `par` - the Parameter whose value is to be obtained and set
      Throws:
        `TaskException`

    - #### clearValue

          void clearValue​(Parameter<?> par)

      Clears a value for a given parameter.
      Parameters:
        `par` - the Parameter whose value is to be cleared

    - #### getNames

          java.lang.String[] getNames()

      Returns an array of parameter names which have been specified. The result is not necessarily an exhaustive list of all parameters whose values can be retrieved from this environment, since an interactive environment may be able to prompt the user for values, but it can give a list of values provided explicitly or without interactive prompts.
      Returns:
        array of names of known supplied parameters

    - #### getOutputStream

          java.io.PrintStream getOutputStream()

      Returns an output stream into which text output from a task can be written. This would correspond to standard output for a terminal-based application.
      Returns:
        a stream for text output

    - #### getErrorStream

          java.io.PrintStream getErrorStream()

      Returns an output stream into which error or logging output from a task can be written. This would correspodnd to standard error for a terminal-based application.
      Returns:
        a stream for error output