summaryrefslogtreecommitdiff
path: root/java/src/IceGridGUI/Utils.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/IceGridGUI/Utils.java')
-rwxr-xr-xjava/src/IceGridGUI/Utils.java31
1 files changed, 28 insertions, 3 deletions
diff --git a/java/src/IceGridGUI/Utils.java b/java/src/IceGridGUI/Utils.java
index 2ea7cb76587..3f329e9652f 100755
--- a/java/src/IceGridGUI/Utils.java
+++ b/java/src/IceGridGUI/Utils.java
@@ -232,11 +232,20 @@ public class Utils
}
//
- // Set a pre-defined variable
+ // Set a pre-defined variable; returns true if value was updated
//
- public void put(String name, String value)
+ public boolean put(String name, String value)
{
- _predefinedVariables.put(name, value);
+ String oldVal = (String)_predefinedVariables.get(name);
+ if(oldVal == null || !oldVal.equals(value))
+ {
+ _predefinedVariables.put(name, value);
+ return true;
+ }
+ else
+ {
+ return false;
+ }
}
//
@@ -252,6 +261,22 @@ public class Utils
_subResolver = new Resolver(_variables, _predefinedVariables);
}
+ public void reset(Resolver parent)
+ {
+ assert _variables == parent._variables;
+ _predefinedVariables = new java.util.HashMap(parent._predefinedVariables);
+
+ assert _parameters == parent._parameters;
+ if(_parameters == null)
+ {
+ _subResolver = this;
+ }
+ else
+ {
+ _subResolver = new Resolver(_variables, _predefinedVariables);
+ }
+ }
+
//
// The sorted substituted parameters
//