diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java @ 1716:3ca999f507b7

flys/issue314: Variables in datacage are now case insensitive. flys-artifacts/trunk@2994 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 17 Oct 2011 15:53:03 +0000
parents 3f3988bb6284
children e3eb1ea885a7
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java	Mon Oct 17 14:55:45 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java	Mon Oct 17 15:53:03 2011 +0000
@@ -417,22 +417,30 @@
             String variable = expand(current.getAttribute("var"));
             String type     = expand(current.getAttribute("type"));
 
-            if (frames.containsKey(variable)) {
-                Object object = TypeConverter.convert(
-                    frames.get(variable),
-                    type);
-                frames.put(variable, object);
+            Object [] result = new Object[1];
+
+            if (frames.getStore(variable, result)) {
+                Object object = TypeConverter.convert(result[0], type);
+                frames.put(variable.toUpperCase(), object);
             }
         }
 
         protected String expand(String s) {
             Matcher m = CompiledStatement.VAR.matcher(s);
 
+            Object [] result = new Object[1];
+
             StringBuffer sb = new StringBuffer();
             while (m.find()) {
                 String key = m.group(1);
-                Object value = frames.get(key);
-                m.appendReplacement(sb, value != null ? value.toString() : "");
+                result[0] = null;
+                if (frames.getStore(key, result)) {
+                    m.appendReplacement(
+                        sb, result[0] != null ? result[0].toString() : "");
+                }
+                else {
+                    m.appendReplacement(sb, "\\${" + key + "}");
+                }
             }
             m.appendTail(sb);
             return sb.toString();

http://dive4elements.wald.intevation.org