Package uk.ac.starlink.ttools.task
Class AddEnvironment
- java.lang.Object
-
- uk.ac.starlink.ttools.task.AddEnvironment
-
- All Implemented Interfaces:
uk.ac.starlink.task.Environment
public class AddEnvironment extends java.lang.Object implements uk.ac.starlink.task.EnvironmentEnvironment implementation which wraps a base environment instance and adds some extra entries as specified by a given map.Note this does not work perfectly, because of bad design of the Environment class. The
acquireValuemethod can end up passing an instance of the wrapped environment to a parameter, which means that subequent environment accesses made under the control of that parameter will not pick up entries added to this environment. A redesign of the Environment class is the only good way out of this. Until then you have to hack round it by explicitly calling acquireValue from this class on dependent variables before it gets done under control of the variable they depend on.- Since:
- 2013
- Author:
- Mark Taylor
-
-
Constructor Summary
Constructors Constructor Description AddEnvironment(uk.ac.starlink.task.Environment baseEnv, java.util.Map<java.lang.String,java.lang.String> addMap)Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidacquireValue(uk.ac.starlink.task.Parameter<?> par)voidclearValue(uk.ac.starlink.task.Parameter<?> par)static AddEnvironmentcreateAddEnvironment(uk.ac.starlink.task.Environment baseEnv, java.util.Map<java.lang.String,java.lang.String> addMap)Returns an AddEnvironment based on a supplied base environment and a map of key-value pairs.java.io.PrintStreamgetErrorStream()java.lang.String[]getNames()java.io.PrintStreamgetOutputStream()
-
-
-
Method Detail
-
acquireValue
public void acquireValue(uk.ac.starlink.task.Parameter<?> par) throws uk.ac.starlink.task.TaskException- Specified by:
acquireValuein interfaceuk.ac.starlink.task.Environment- Throws:
uk.ac.starlink.task.TaskException
-
clearValue
public void clearValue(uk.ac.starlink.task.Parameter<?> par)
- Specified by:
clearValuein interfaceuk.ac.starlink.task.Environment
-
getNames
public java.lang.String[] getNames()
- Specified by:
getNamesin interfaceuk.ac.starlink.task.Environment
-
getOutputStream
public java.io.PrintStream getOutputStream()
- Specified by:
getOutputStreamin interfaceuk.ac.starlink.task.Environment
-
getErrorStream
public java.io.PrintStream getErrorStream()
- Specified by:
getErrorStreamin interfaceuk.ac.starlink.task.Environment
-
createAddEnvironment
public static AddEnvironment createAddEnvironment(uk.ac.starlink.task.Environment baseEnv, java.util.Map<java.lang.String,java.lang.String> addMap)
Returns an AddEnvironment based on a supplied base environment and a map of key-value pairs. If the supplied base environment is a TableEnvironment instance, the returned value will be as well.- Parameters:
baseEnv- base environmentaddMap- addional key-value pairs to add to this environment- Returns:
- Environment or TableEnvironment instance with additional entries
-
-