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();
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)