diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.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 0a5eff5511b1
children 5642a83420f2
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java	Mon Oct 17 14:55:45 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java	Mon Oct 17 15:53:03 2011 +0000
@@ -25,6 +25,7 @@
 
 import de.intevation.artifacts.common.utils.Config;
 import de.intevation.artifacts.common.utils.XMLUtils;
+import de.intevation.artifacts.common.utils.StringUtils;
 
 import de.intevation.flys.artifacts.FLYSArtifact;
 
@@ -117,19 +118,28 @@
         FLYSArtifact        artifact, 
         Map<String, Object> parameters
     ) {
-        parameters.put("current-state-id", artifact.getCurrentStateId());
-        parameters.put("artifact-id",      artifact.identifier());
+        parameters.put("CURRENT-STATE-ID", artifact.getCurrentStateId());
+        parameters.put("ARTIFACT-ID",      artifact.identifier());
 
         for (StateData sd: artifact.getAllData()) {
             Object value = sd.getValue();
             if (value == null) {
                 continue;
             }
-            String key = sd.getName().replace('.', '-');
+            String key = sd.getName().replace('.', '-').toUpperCase();
             parameters.put(key, value);
         }
     }
 
+    public static void convertKeysToUpperCase(
+        Map<String, Object> src,
+        Map<String, Object> dst
+    ) {
+        for (Map.Entry<String, Object> entry: src.entrySet()) {
+            dst.put(entry.getKey().toUpperCase(), entry.getValue());
+        }
+    }
+
     public void  recommend(
         FLYSArtifact        artifact,
         String              userId,
@@ -140,20 +150,20 @@
         Map<String, Object> parameters = new HashMap<String, Object>();
 
         if (extraParameters != null) {
-            parameters.putAll(extraParameters);
+            convertKeysToUpperCase(extraParameters, parameters);
         }
 
         if (userId != null) {
-            parameters.put("user-id", userId);
+            parameters.put("USER-ID", userId);
         }
 
         if (artifact != null) {
             artifactToParameters(artifact, parameters);
         }
 
-        parameters.put("artifact-outs", outs);
+        parameters.put("ARTIFACT-OUTS", StringUtils.toUpperCase(outs));
 
-        parameters.put("parameters", parameters);
+        parameters.put("PARAMETERS", parameters);
 
         recommend(parameters, userId, result);
     }

http://dive4elements.wald.intevation.org