# Class MapEnvironment

java.lang.Object
uk.ac.starlink.ttools.task.MapEnvironment

All Implemented Interfaces:
  `uk.ac.starlink.task.Environment, TableEnvironment`

public class MapEnvironment extends Object implements TableEnvironment
Environment which allows use of ttools tasks from an in-memory context. Input StarTables can be set as values of parameters and output ones can be extracted.

Author:
  Mark Taylor

## Constructor Summary

Constructors
Constructor
Description
`MapEnvironment()`
Constructs a new environment with no values.
`MapEnvironment(Map<String,Object> map)`
Constructs a new environment with a map of parameter name->value pairs.
`MapEnvironment(MapEnvironment env)`
Clone constructor.

## Method Summary

Modifier and Type
Method
Description
`void`
`acquireValue(uk.ac.starlink.task.Parameter<?> param)`
`void`
`clearValue(uk.ac.starlink.task.Parameter<?> param)`
`String[]`
`getErrorLines()`
Returns the error output written by the task so far, in an array one line per element.
`PrintStream`
`getErrorStream()`
`String`
`getErrorText()`
Returns a string which contains all the error output written by the task so far.
`uk.ac.starlink.table.jdbc.JDBCAuthenticator`
`getJdbcAuthenticator()`
Returns a JDBC authenticator suitable for use in this environment.
`Map<String,Object>`
`getMap()`
Returns the map object that contains the data for this environment.
`String[]`
`getNames()`
`String[]`
`getOutputLines()`
Returns the output written by the task so far, in an array one line per element.
`PrintStream`
`getOutputStream()`
`uk.ac.starlink.table.StarTable`
`getOutputTable(String paramName)`
If the task which has been executed in this environment has created an output table which has not been otherwise disposed of, you can get it from here.
`String`
`getOutputText()`
Returns a string which contains all the output written by the task so far.
`uk.ac.starlink.table.StarTableFactory`
`getTableFactory()`
Returns a table factory suitable for use in this environment.
`uk.ac.starlink.table.StarTableOutput`
`getTableOutput()`
Returns a table output marshaller suitable for use in this environment.
`String[]`
`getUnused()`
Returns an array containing any words of the input argument list which were never queried by the application to find their value.
`boolean`
`isDebug()`
Indicates whether we are running in debug mode.
`boolean`
`isStrictVotable()`
Determines whether votables are to be parsed in strict mode.
`void`
`setDebug(boolean debug)`
Sets whether we are running in debug mode.
`MapEnvironment`
`setResourceBase(Class<?> clazz)`
Sets the class which defines the context for resource discovery.
`void`
`setStrictVotable(boolean strict)`
Sets whether votables should be parsed in strict mode.
`MapEnvironment`
`setValue(String paramName, Object value)`
Sets the value of a parameter.

### Methods inherited from class Object

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

## Constructor Details

### MapEnvironment

public MapEnvironment()
Constructs a new environment with no values.

### MapEnvironment

public MapEnvironment(Map<String,Object> map)
Constructs a new environment with a map of parameter name->value pairs.

Parameters:
  `map` - parameter map

### MapEnvironment

public MapEnvironment(MapEnvironment env)
Clone constructor.

Parameters:
  `env` - environment to copy

## Method Details

### getOutputStream

public PrintStream getOutputStream()

Specified by:
  `getOutputStream` in interface `uk.ac.starlink.task.Environment`

### getErrorStream

public PrintStream getErrorStream()

Specified by:
  `getErrorStream` in interface `uk.ac.starlink.task.Environment`

### clearValue

public void clearValue(uk.ac.starlink.task.Parameter<?> param)

Specified by:
  `clearValue` in interface `uk.ac.starlink.task.Environment`

### getNames

public String[] getNames()

Specified by:
  `getNames` in interface `uk.ac.starlink.task.Environment`

### getMap

public Map<String,Object> getMap()
Returns the map object that contains the data for this environment. Modify it at your own risk.

Returns:
  content map

### getOutputText

public String getOutputText()
Returns a string which contains all the output written by the task so far.

Returns:
  output text

### getOutputLines

public String[] getOutputLines()
Returns the output written by the task so far, in an array one line per element.

Returns:
  output text

### getErrorText

public String getErrorText()
Returns a string which contains all the error output written by the task so far.

Returns:
  error text

### getErrorLines

public String[] getErrorLines()
Returns the error output written by the task so far, in an array one line per element.

Returns:
  error text

### setValue

public MapEnvironment setValue(String paramName, Object value)
Sets the value of a parameter. A string value is OK; in some cases other parameter types are catered for. For convenience, this method returns this object (cf. StringBuffer).

Parameters:
  `paramName` - name
  `value` - string or other value
Returns:
  this

### setResourceBase

public MapEnvironment setResourceBase(Class<?> clazz)
Sets the class which defines the context for resource discovery.

Parameters:
  `clazz` - resource base class
Returns:
  this
See Also:
  - `Class.getResource(String)`

### getOutputTable

public uk.ac.starlink.table.StarTable getOutputTable(String paramName)
If the task which has been executed in this environment has created an output table which has not been otherwise disposed of, you can get it from here.

Parameters:
  `paramName` - name of a TableConsumerParameter
Returns:
  output table stored under `name`

### acquireValue

public void acquireValue(uk.ac.starlink.task.Parameter<?> param) throws uk.ac.starlink.task.TaskException

Specified by:
  `acquireValue` in interface `uk.ac.starlink.task.Environment`
Throws:
  `uk.ac.starlink.task.TaskException`

### getTableFactory

public uk.ac.starlink.table.StarTableFactory getTableFactory()
Description copied from interface: `TableEnvironment`
Returns a table factory suitable for use in this environment.

Specified by:
  `getTableFactory` in interface `TableEnvironment`
Returns:
  table factory

### getTableOutput

public uk.ac.starlink.table.StarTableOutput getTableOutput()
Description copied from interface: `TableEnvironment`
Returns a table output marshaller suitable for use in this environment.

Specified by:
  `getTableOutput` in interface `TableEnvironment`
Returns:
  table output

### getJdbcAuthenticator

public uk.ac.starlink.table.jdbc.JDBCAuthenticator getJdbcAuthenticator()
Description copied from interface: `TableEnvironment`
Returns a JDBC authenticator suitable for use in this environment.

Specified by:
  `getJdbcAuthenticator` in interface `TableEnvironment`
Returns:
  JDBC authenticator

### isDebug

public boolean isDebug()
Description copied from interface: `TableEnvironment`
Indicates whether we are running in debug mode.

Specified by:
  `isDebug` in interface `TableEnvironment`
Returns:
  true iff debugging output is required

### setDebug

public void setDebug(boolean debug)
Description copied from interface: `TableEnvironment`
Sets whether we are running in debug mode.

Specified by:
  `setDebug` in interface `TableEnvironment`
Parameters:
  `debug` - set true if you want debugging messages

### isStrictVotable

public boolean isStrictVotable()
Description copied from interface: `TableEnvironment`
Determines whether votables are to be parsed in strict mode.

Specified by:
  `isStrictVotable` in interface `TableEnvironment`
Returns:
  true if VOTables will be interpreted strictly in accordance with the standard

### setStrictVotable

public void setStrictVotable(boolean strict)
Description copied from interface: `TableEnvironment`
Sets whether votables should be parsed in strict mode.

Specified by:
  `setStrictVotable` in interface `TableEnvironment`
Parameters:
  `strict` - true if VOTables should be interpreted strictly in accordance with the standard

### getUnused

public String[] getUnused()
Returns an array containing any words of the input argument list which were never queried by the application to find their value. Such unused words probably merit a warning, since they may for instance be misspelled versions of real parameters.

Returns:
  array of unused words