comparison artifacts/src/main/java/org/dive4elements/river/artifacts/services/MainValuesService.java @ 6356:4c791a458305

Artifacts: Scan the official lines associated with a main value if it applies for the current river.
author Sascha L. Teichmann <teichmann@intevation.de>
date Mon, 17 Jun 2013 21:51:04 +0200
parents e296c05a0c5b
children b07cfc319781
comparison
equal deleted inserted replaced
6355:d6ae01d6a7cb 6356:4c791a458305
24 24
25 import org.dive4elements.river.model.Gauge; 25 import org.dive4elements.river.model.Gauge;
26 import org.dive4elements.river.model.MainValue; 26 import org.dive4elements.river.model.MainValue;
27 import org.dive4elements.river.model.MainValueType; 27 import org.dive4elements.river.model.MainValueType;
28 import org.dive4elements.river.model.NamedMainValue; 28 import org.dive4elements.river.model.NamedMainValue;
29 import org.dive4elements.river.model.OfficialLine;
29 import org.dive4elements.river.model.Range; 30 import org.dive4elements.river.model.Range;
30 import org.dive4elements.river.model.River; 31 import org.dive4elements.river.model.River;
31 32
32 import org.dive4elements.river.artifacts.model.RiverFactory; 33 import org.dive4elements.river.artifacts.model.RiverFactory;
33 34
203 cr.addAttr(rootEl, "name", "mainvalues"); 204 cr.addAttr(rootEl, "name", "mainvalues");
204 205
205 doc.appendChild(rootEl); 206 doc.appendChild(rootEl);
206 207
207 appendMetaInformation(doc, rootEl, river, gauge, context); 208 appendMetaInformation(doc, rootEl, river, gauge, context);
208 appendMainValues(doc, rootEl, mainValues, context); 209 appendMainValues(doc, rootEl, mainValues, river.getName(), context);
209 210
210 return doc; 211 return doc;
211 } 212 }
212 213
213 214
248 root.appendChild(riverEl); 249 root.appendChild(riverEl);
249 root.appendChild(gaugeEl); 250 root.appendChild(gaugeEl);
250 } 251 }
251 252
252 253
254 /** Checks i a main value has an official associated, */
255 protected static boolean hasOfficialLine(NamedMainValue nmv, String river) {
256 for (OfficialLine ol: nmv.getOfficialLines()) {
257 if (river.equals(ol.getWstColumn().getWst().getRiver().getName())) {
258 return true;
259 }
260 }
261 return false;
262 }
263
264
253 protected void appendMainValues( 265 protected void appendMainValues(
254 Document doc, 266 Document doc,
255 Element root, 267 Element root,
256 List<MainValue> mainValues, 268 List<MainValue> mainValues,
269 String river,
257 Object context) 270 Object context)
258 { 271 {
259 logger.debug("MainValuesService.appendMainValues"); 272 logger.debug("MainValuesService.appendMainValues");
260 273
261 ElementCreator cr = new ElementCreator( 274 ElementCreator cr = new ElementCreator(
264 ArtifactNamespaceContext.NAMESPACE_PREFIX); 277 ArtifactNamespaceContext.NAMESPACE_PREFIX);
265 278
266 Element list = cr.create("mainvalues"); 279 Element list = cr.create("mainvalues");
267 280
268 for (MainValue mainValue: mainValues) { 281 for (MainValue mainValue: mainValues) {
269 Element newEl = buildMainValueElement(doc, mainValue, context); 282 Element newEl = buildMainValueElement(doc, mainValue, river, context);
270 283
271 if (newEl != null) { 284 if (newEl != null) {
272 list.appendChild(newEl); 285 list.appendChild(newEl);
273 } 286 }
274 } 287 }
288 * @return a mainvalue element. 301 * @return a mainvalue element.
289 */ 302 */
290 protected Element buildMainValueElement( 303 protected Element buildMainValueElement(
291 Document doc, 304 Document doc,
292 MainValue mainValue, 305 MainValue mainValue,
306 String river,
293 Object context) 307 Object context)
294 { 308 {
295 ElementCreator cr = new ElementCreator( 309 ElementCreator cr = new ElementCreator(
296 doc, 310 doc,
297 ArtifactNamespaceContext.NAMESPACE_URI, 311 ArtifactNamespaceContext.NAMESPACE_URI,
304 318
305 cr.addAttr(el, "value", mainValue.getValue().toString()); 319 cr.addAttr(el, "value", mainValue.getValue().toString());
306 cr.addAttr(el, "name", namedMainValue.getName()); 320 cr.addAttr(el, "name", namedMainValue.getName());
307 cr.addAttr(el, "type", mainValueType.getName()); 321 cr.addAttr(el, "type", mainValueType.getName());
308 322
323 if (hasOfficialLine(namedMainValue, river)) {
324 cr.addAttr(el, "official", "true");
325 }
326
327
309 return el; 328 return el;
310 } 329 }
311 } 330 }
312 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 331 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org