Mercurial > dive4elements > river
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 : |