1 package mir.producer.reader;
5 public class ScriptedProducerNodeTool {
7 public static Object getOrMakeMapValueForKey(Map aMap, Object aKey, Object aDefaultValue) {
8 if (aMap.containsKey(aKey))
11 aMap.put(aKey, aDefaultValue);
16 public static Stack getRunTimeStack(Map aProductionMap, String aDefinitionName) {
17 Map runtimeData = (Map) getOrMakeMapValueForKey(aProductionMap, ScriptedProducerNodeDefinition.SCRIPTED_PRODUCERNODE_RUNTIMEDATA_KEY, new HashMap());
18 runtimeData = (Map) getOrMakeMapValueForKey(runtimeData, aDefinitionName, new HashMap());
19 return (Stack) getOrMakeMapValueForKey(runtimeData, ScriptedProducerNodeDefinition.SCRIPTED_PRODUCERNODE_RUNTIMESTACK_KEY, new Stack());
22 public static void pushNodeParameterValues(Map aProductionMap, String aDefinitionName, Map aNodeParameterValues) {
23 Stack runtimeStack = getRunTimeStack(aProductionMap, aDefinitionName);
24 runtimeStack.push(aNodeParameterValues);
27 public static void popNodeParameterValues(Map aProductionMap, String aDefinitionName) {
28 Stack runtimeStack = getRunTimeStack(aProductionMap, aDefinitionName);
32 public static Map saveMapValues(Map aMap, Set aKeys) {
33 Map result = new HashMap();
34 Iterator i = aKeys.iterator();
37 Object key = i.next();
38 if (aMap.containsKey(key))
39 result.put(key, aMap.get(key));
45 public static void restoreMapValues(Map aMap, Set aKeys, Map aSavedValues) {
46 Iterator i = aKeys.iterator();
49 Object key = i.next();
50 if (aSavedValues.containsKey(key))
51 aMap.put(key, aSavedValues.get(key));