comparison 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
comparison
equal deleted inserted replaced
1715:a70e0cbc5e02 1716:3ca999f507b7
23 23
24 import org.hibernate.jdbc.Work; 24 import org.hibernate.jdbc.Work;
25 25
26 import de.intevation.artifacts.common.utils.Config; 26 import de.intevation.artifacts.common.utils.Config;
27 import de.intevation.artifacts.common.utils.XMLUtils; 27 import de.intevation.artifacts.common.utils.XMLUtils;
28 import de.intevation.artifacts.common.utils.StringUtils;
28 29
29 import de.intevation.flys.artifacts.FLYSArtifact; 30 import de.intevation.flys.artifacts.FLYSArtifact;
30 31
31 import de.intevation.flys.backend.SessionHolder; 32 import de.intevation.flys.backend.SessionHolder;
32 33
115 116
116 protected static void artifactToParameters( 117 protected static void artifactToParameters(
117 FLYSArtifact artifact, 118 FLYSArtifact artifact,
118 Map<String, Object> parameters 119 Map<String, Object> parameters
119 ) { 120 ) {
120 parameters.put("current-state-id", artifact.getCurrentStateId()); 121 parameters.put("CURRENT-STATE-ID", artifact.getCurrentStateId());
121 parameters.put("artifact-id", artifact.identifier()); 122 parameters.put("ARTIFACT-ID", artifact.identifier());
122 123
123 for (StateData sd: artifact.getAllData()) { 124 for (StateData sd: artifact.getAllData()) {
124 Object value = sd.getValue(); 125 Object value = sd.getValue();
125 if (value == null) { 126 if (value == null) {
126 continue; 127 continue;
127 } 128 }
128 String key = sd.getName().replace('.', '-'); 129 String key = sd.getName().replace('.', '-').toUpperCase();
129 parameters.put(key, value); 130 parameters.put(key, value);
131 }
132 }
133
134 public static void convertKeysToUpperCase(
135 Map<String, Object> src,
136 Map<String, Object> dst
137 ) {
138 for (Map.Entry<String, Object> entry: src.entrySet()) {
139 dst.put(entry.getKey().toUpperCase(), entry.getValue());
130 } 140 }
131 } 141 }
132 142
133 public void recommend( 143 public void recommend(
134 FLYSArtifact artifact, 144 FLYSArtifact artifact,
138 Node result 148 Node result
139 ) { 149 ) {
140 Map<String, Object> parameters = new HashMap<String, Object>(); 150 Map<String, Object> parameters = new HashMap<String, Object>();
141 151
142 if (extraParameters != null) { 152 if (extraParameters != null) {
143 parameters.putAll(extraParameters); 153 convertKeysToUpperCase(extraParameters, parameters);
144 } 154 }
145 155
146 if (userId != null) { 156 if (userId != null) {
147 parameters.put("user-id", userId); 157 parameters.put("USER-ID", userId);
148 } 158 }
149 159
150 if (artifact != null) { 160 if (artifact != null) {
151 artifactToParameters(artifact, parameters); 161 artifactToParameters(artifact, parameters);
152 } 162 }
153 163
154 parameters.put("artifact-outs", outs); 164 parameters.put("ARTIFACT-OUTS", StringUtils.toUpperCase(outs));
155 165
156 parameters.put("parameters", parameters); 166 parameters.put("PARAMETERS", parameters);
157 167
158 recommend(parameters, userId, result); 168 recommend(parameters, userId, result);
159 } 169 }
160 170
161 public void recommend( 171 public void recommend(

http://dive4elements.wald.intevation.org