Mercurial > lada > lada-server
comparison src/main/java/de/intevation/lada/factory/ProbeFactory.java @ 711:3ec358698b4d
Code style and documentation.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Wed, 22 Jul 2015 16:03:03 +0200 |
parents | e502e1af6256 |
children | d8e421d9d7ec |
comparison
equal
deleted
inserted
replaced
710:2ae27dde4823 | 711:3ec358698b4d |
---|---|
82 createProben(interval, messprogramm, proben); | 82 createProben(interval, messprogramm, proben); |
83 } | 83 } |
84 return proben; | 84 return proben; |
85 } | 85 } |
86 | 86 |
87 /** | |
88 * Create LProbe objects using the interval and messprogramm details. | |
89 * | |
90 * @param interval The time interval for probe objects. | |
91 * @param messprogramm The messprogramm containing details. | |
92 * @param proben An (empty) list for probe objects filled by this | |
93 * method | |
94 * @return | |
95 */ | |
87 private void createProben( | 96 private void createProben( |
88 Date[] interval, | 97 Date[] interval, |
89 Messprogramm messprogramm, | 98 Messprogramm messprogramm, |
90 List<LProbe> proben | 99 List<LProbe> proben |
91 ) { | 100 ) { |
109 int intervalDays = parseInterval(messprogramm.getProbenintervall()); | 118 int intervalDays = parseInterval(messprogramm.getProbenintervall()); |
110 int teilStart = messprogramm.getTeilintervallVon() + startDay; | 119 int teilStart = messprogramm.getTeilintervallVon() + startDay; |
111 int teilEnd = messprogramm.getTeilintervallBis() + startDay; | 120 int teilEnd = messprogramm.getTeilintervallBis() + startDay; |
112 int offset = messprogramm.getIntervallOffset() == null ? 0 : messprogramm.getIntervallOffset(); | 121 int offset = messprogramm.getIntervallOffset() == null ? 0 : messprogramm.getIntervallOffset(); |
113 | 122 |
114 for (; | 123 for (;teilStart >= startDay + offset && teilEnd <= endDay + offset;) { |
115 teilStart >= startDay + offset && teilEnd <= endDay + offset;) { | |
116 start.add(Calendar.DATE, teilStart - startDay + offset); | 124 start.add(Calendar.DATE, teilStart - startDay + offset); |
117 Date startDate = start.getTime(); | 125 Date startDate = start.getTime(); |
118 end.add(Calendar.DATE, teilEnd - endDay + offset); | 126 end.add(Calendar.DATE, teilEnd - endDay + offset); |
119 Date endDate = end.getTime(); | 127 Date endDate = end.getTime(); |
120 LProbe probe = createObjects(messprogramm, startDate, endDate); | 128 LProbe probe = createObjects(messprogramm, startDate, endDate); |
125 start.setTime(interval[0]); | 133 start.setTime(interval[0]); |
126 } | 134 } |
127 return; | 135 return; |
128 } | 136 } |
129 | 137 |
138 /** | |
139 * Create a single probe object. | |
140 * | |
141 * @param messprogramm The messprogramm containing probe details | |
142 * @param startDate The date for 'solldatumbeginn' | |
143 * @param endDate The date for 'solldatumende' | |
144 * | |
145 * @return The new probe object. | |
146 */ | |
130 private LProbe createObjects( | 147 private LProbe createObjects( |
131 Messprogramm messprogramm, | 148 Messprogramm messprogramm, |
132 Date startDate, | 149 Date startDate, |
133 Date endDate | 150 Date endDate |
134 ) { | 151 ) { |
209 probe = | 226 probe = |
210 (LProbe)repository.getById(LProbe.class, probe.getId(), "land").getData(); | 227 (LProbe)repository.getById(LProbe.class, probe.getId(), "land").getData(); |
211 return probe; | 228 return probe; |
212 } | 229 } |
213 | 230 |
231 /** | |
232 * Determine the interval for probe generation using a start date, end date | |
233 * and the messprogramm. | |
234 * | |
235 * @param start Calendar object defining the start of the first interval | |
236 * @param end Calendar object defining the end of the last interval. | |
237 * @param messprogramm The messprogramm | |
238 * | |
239 * @return An array of start/end pairs. | |
240 */ | |
214 private Date[][] calculateIntervals( | 241 private Date[][] calculateIntervals( |
215 Calendar start, | 242 Calendar start, |
216 Calendar end, | 243 Calendar end, |
217 Messprogramm messprogramm | 244 Messprogramm messprogramm |
218 ) { | 245 ) { |
255 } | 282 } |
256 | 283 |
257 return intervals; | 284 return intervals; |
258 } | 285 } |
259 | 286 |
287 /** | |
288 * Parse an interval string. | |
289 * Posible values are: J, H, Q, M, W4, W2, W, T | |
290 * | |
291 * @param interval the interval string. | |
292 * | |
293 * @return the amount of days for the given interval. | |
294 */ | |
260 private int parseInterval(String interval) { | 295 private int parseInterval(String interval) { |
261 if ("J".equals(interval)) { | 296 if ("J".equals(interval)) { |
262 return 365; | 297 return 365; |
263 } | 298 } |
264 else if ("H".equals(interval)) { | 299 else if ("H".equals(interval)) { |
285 else { | 320 else { |
286 return 0; | 321 return 0; |
287 } | 322 } |
288 } | 323 } |
289 | 324 |
325 /** | |
326 * Search for the umwelt id using the 'deskriptor'. | |
327 * | |
328 * @param probe The probe object. | |
329 * | |
330 * @return The updated probe object. | |
331 */ | |
290 public LProbe findUmweltId(LProbe probe) { | 332 public LProbe findUmweltId(LProbe probe) { |
291 String[] mediaDesk = probe.getMediaDesk().split(" "); | 333 String[] mediaDesk = probe.getMediaDesk().split(" "); |
292 if (mediaDesk.length <= 1) { | 334 if (mediaDesk.length <= 1) { |
293 return probe; | 335 return probe; |
294 } | 336 } |
295 probe.setUmwId(findUmwelt(mediaDesk)); | 337 probe.setUmwId(findUmwelt(mediaDesk)); |
296 return probe; | 338 return probe; |
297 } | 339 } |
298 | 340 |
341 /** | |
342 * Search for the media description using the 'deskriptor'. | |
343 * | |
344 * @param probe The probe object | |
345 * | |
346 * @return The updated probe object. | |
347 */ | |
299 public LProbe findMediaDesk(LProbe probe) { | 348 public LProbe findMediaDesk(LProbe probe) { |
300 probe.setMedia(repository | 349 probe.setMedia(repository |
301 .queryFromString("SELECT get_media_from_media_desk( :mediaDesk );", "stamm") | 350 .queryFromString("SELECT get_media_from_media_desk( :mediaDesk );", "stamm") |
302 .setParameter("mediaDesk", probe.getMediaDesk()) | 351 .setParameter("mediaDesk", probe.getMediaDesk()) |
303 .getSingleResult() | 352 .getSingleResult() |
304 .toString()); | 353 .toString()); |
305 return probe; | 354 return probe; |
306 } | 355 } |
307 | 356 |
357 /** | |
358 * Search for the umwelt id using the 'deskriptor'. | |
359 * | |
360 * @param messprogramm The messprogramm | |
361 * | |
362 * @return The updated messprogramm. | |
363 */ | |
308 public Messprogramm findUmweltId(Messprogramm messprogramm) { | 364 public Messprogramm findUmweltId(Messprogramm messprogramm) { |
309 String[] mediaDesk = messprogramm.getMediaDesk().split(" "); | 365 String[] mediaDesk = messprogramm.getMediaDesk().split(" "); |
310 if (mediaDesk.length <= 1) { | 366 if (mediaDesk.length <= 1) { |
311 return messprogramm; | 367 return messprogramm; |
312 } | 368 } |
313 messprogramm.setUmwId(findUmwelt(mediaDesk)); | 369 messprogramm.setUmwId(findUmwelt(mediaDesk)); |
314 return messprogramm; | 370 return messprogramm; |
315 } | 371 } |
316 | 372 |
373 /** | |
374 * Find the umwelt id for a given deskriptor. | |
375 * | |
376 * @param mediaDesk The deskriptor string | |
377 * | |
378 * @return The umwelt id or an empty string. | |
379 */ | |
317 private String findUmwelt(String[] mediaDesk) { | 380 private String findUmwelt(String[] mediaDesk) { |
318 List<Integer> mediaIds = new ArrayList<Integer>(); | 381 List<Integer> mediaIds = new ArrayList<Integer>(); |
319 boolean zebs = false; | 382 boolean zebs = false; |
320 Integer parent = null; | 383 Integer parent = null; |
321 Integer hdParent = null; | 384 Integer hdParent = null; |
357 } | 420 } |
358 } | 421 } |
359 return getUmwelt(mediaIds, zebs); | 422 return getUmwelt(mediaIds, zebs); |
360 } | 423 } |
361 | 424 |
425 /** | |
426 * Find the umwelt id in the database using media deskriptor ids. | |
427 * | |
428 * @param media The list of media ids. | |
429 * @param isZebs Flag for type of the deskriptor. | |
430 * | |
431 * @return The umwelt id or an empty string. | |
432 */ | |
362 private String getUmwelt(List<Integer> media, boolean isZebs) { | 433 private String getUmwelt(List<Integer> media, boolean isZebs) { |
363 QueryBuilder<DeskriptorUmwelt> builder = | 434 QueryBuilder<DeskriptorUmwelt> builder = |
364 new QueryBuilder<DeskriptorUmwelt>( | 435 new QueryBuilder<DeskriptorUmwelt>( |
365 repository.entityManager("stamm"), DeskriptorUmwelt.class); | 436 repository.entityManager("stamm"), DeskriptorUmwelt.class); |
366 | 437 |
442 } | 513 } |
443 return ""; | 514 return ""; |
444 } | 515 } |
445 } | 516 } |
446 | 517 |
518 /** | |
519 * Determine if the entries in the list have the same umwelt id. | |
520 * | |
521 * @param list A list of DescriptorUmwelt objects. | |
522 * | |
523 * @return true if the objects have the same umwelt id else false. | |
524 */ | |
447 private boolean isUnique(List<DeskriptorUmwelt> list) { | 525 private boolean isUnique(List<DeskriptorUmwelt> list) { |
448 if (list.isEmpty()) { | 526 if (list.isEmpty()) { |
449 return false; | 527 return false; |
450 } | 528 } |
451 String element = list.get(0).getUmwId(); | 529 String element = list.get(0).getUmwId(); |