Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/factory/ProbeFactory.java @ 1064:8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Thu, 29 Sep 2016 16:15:38 +0200 |
parents | 0fbcaefc565b |
children | 703b370c3b34 |
rev | line source |
---|---|
691
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
2 * Software engineering by Intevation GmbH |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
3 * |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
4 * This file is Free Software under the GNU GPL (v>=3) |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
6 * the documentation coming with IMIS-Labordaten-Application for details. |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
7 */ |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
8 package de.intevation.lada.factory; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
9 |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
10 import java.sql.Timestamp; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
11 import java.util.ArrayList; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
12 import java.util.Calendar; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
13 import java.util.Date; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
14 import java.util.List; |
1064
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
15 import java.util.Hashtable; |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
16 |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
17 import javax.inject.Inject; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
18 |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
19 import org.apache.log4j.Logger; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
20 |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
21 import de.intevation.lada.model.land.LKommentarP; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
22 import de.intevation.lada.model.land.LMessung; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
23 import de.intevation.lada.model.land.LMesswert; |
810
092e673cbb8d
Added and updated model, services, etc for to fit the new db schema.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
735
diff
changeset
|
24 import de.intevation.lada.model.land.LOrtszuordnung; |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
25 import de.intevation.lada.model.land.LProbe; |
897
67c3d22372e4
Add the initial status to generated messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
896
diff
changeset
|
26 import de.intevation.lada.model.land.LStatusProtokoll; |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
27 import de.intevation.lada.model.land.Messprogramm; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
28 import de.intevation.lada.model.land.MessprogrammMmt; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
29 import de.intevation.lada.model.land.MessungTranslation; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
30 import de.intevation.lada.model.land.ProbeTranslation; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
31 import de.intevation.lada.model.stamm.DeskriptorUmwelt; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
32 import de.intevation.lada.model.stamm.Deskriptoren; |
810
092e673cbb8d
Added and updated model, services, etc for to fit the new db schema.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
735
diff
changeset
|
33 import de.intevation.lada.model.stamm.Ort; |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
34 import de.intevation.lada.util.annotation.RepositoryConfig; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
35 import de.intevation.lada.util.data.QueryBuilder; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
36 import de.intevation.lada.util.data.Repository; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
37 import de.intevation.lada.util.data.RepositoryType; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
38 import de.intevation.lada.util.rest.Response; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
39 |
691
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
40 /** |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
41 * This factory creates probe objects and its children using a messprogramm |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
42 * as template. |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
43 * |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
44 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
45 */ |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
46 public class ProbeFactory { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
47 |
1064
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
48 private static Hashtable<String, int[]> fieldsTable; |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
49 |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
50 public ProbeFactory() { |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
51 int[] M = { Calendar.MONTH, Calendar.DAY_OF_MONTH, 1 }; |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
52 int[] Q = { Calendar.MONTH, Calendar.DAY_OF_MONTH, 3 }; |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
53 int[] H = { Calendar.MONTH, Calendar.DAY_OF_MONTH, 6 }; |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
54 |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
55 this.fieldsTable = new Hashtable<String, int[]>(); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
56 |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
57 this.fieldsTable.put("M", M); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
58 this.fieldsTable.put("Q", Q); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
59 this.fieldsTable.put("H", H); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
60 } |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
61 |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
62 private class Intervall { |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
63 private int teilVon; |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
64 private int teilBis; |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
65 private int offset; |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
66 |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
67 private int intervallField; |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
68 private int subIntField; |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
69 private int intervallFactor; |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
70 |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
71 private Calendar from; |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
72 |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
73 public Intervall( |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
74 Messprogramm messprogramm, |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
75 Calendar start |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
76 ) { |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
77 this.teilVon = messprogramm.getTeilintervallVon(); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
78 this.teilBis = messprogramm.getTeilintervallBis(); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
79 this.offset = messprogramm.getIntervallOffset(); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
80 |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
81 this.intervallField = fieldsTable |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
82 .get(messprogramm.getProbenintervall())[0]; |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
83 this.subIntField = fieldsTable |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
84 .get(messprogramm.getProbenintervall())[1]; |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
85 this.intervallFactor = fieldsTable |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
86 .get(messprogramm.getProbenintervall())[2]; |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
87 |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
88 /* Align with beginning of next interval |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
89 * like first day of next quarter.*/ |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
90 // TODO: Avoid overflow e.g. into next quarter, if e.g. teilBis |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
91 // greater than sum of actual maxima of months in quarter. |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
92 int startIntField = start.get(intervallField); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
93 this.from = (Calendar)start.clone(); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
94 from.set( |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
95 intervallField, |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
96 startIntField + startIntField % intervallFactor |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
97 ); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
98 from = adjustSubIntField(from, teilVon); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
99 if (start.after(from)) { |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
100 // to next intervall if start not at first day of intervall |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
101 this.roll(); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
102 } |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
103 } |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
104 |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
105 /** |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
106 * Return given calendar adjusted to start of intervall (e.g. first |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
107 * day in quarter) plus offset and given amount of days. |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
108 * |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
109 * @param cal Calendar to be adjusted |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
110 * @param int amount of days to be added (plus offset) |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
111 * |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
112 * @return the adjusted Calendar object. |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
113 */ |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
114 private Calendar adjustSubIntField(Calendar cal, int teil) { |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
115 int intField = cal.get(intervallField); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
116 cal.set( |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
117 intervallField, |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
118 intField - intField % intervallFactor |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
119 ); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
120 cal.set(subIntField, offset + Math.min(teil, getDuration())); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
121 return cal; |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
122 } |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
123 |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
124 /** |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
125 * Get sum of actual maxima for given field from actual field value |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
126 * for the next factor values of iterField. |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
127 * |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
128 * @param calendar Time to start from |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
129 * |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
130 * @return the sum of maxima for the field values specified with |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
131 * field and factor. |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
132 */ |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
133 private int getDuration() { |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
134 logger.debug("## calculate maximum ##"); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
135 int duration = 0; |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
136 Calendar tmp = (Calendar)from.clone(); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
137 /* reset to beginning of intervall, e.g. first day of quarter |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
138 * to compensate possible overflow if |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
139 * teilVon > maximum of intervallField: */ |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
140 int fromIntField = from.get(intervallField); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
141 tmp.set( |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
142 intervallField, |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
143 fromIntField - fromIntField % intervallFactor |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
144 ); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
145 tmp.set(subIntField, tmp.getActualMinimum(subIntField)); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
146 logger.debug(tmp); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
147 for (int i = 0; i < intervallFactor; i++) { |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
148 logger.debug(tmp.getActualMaximum(subIntField)); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
149 duration += tmp.getActualMaximum(subIntField); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
150 tmp.add(intervallField, 1); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
151 } |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
152 logger.debug(duration); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
153 return duration; |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
154 } |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
155 |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
156 public Date getFrom() { |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
157 logger.debug("getFrom() from: " + from); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
158 return from.getTime(); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
159 } |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
160 |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
161 public Date getTo() { |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
162 logger.debug("getTo() from: " + from); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
163 Calendar to = (Calendar)from.clone(); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
164 to = adjustSubIntField(to, teilBis); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
165 return to.getTime(); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
166 } |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
167 |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
168 public boolean startInLeapYear() { |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
169 return from.getActualMaximum(Calendar.DAY_OF_YEAR) > 364; |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
170 } |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
171 |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
172 public int getStartDOY() { |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
173 return from.get(Calendar.DAY_OF_YEAR); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
174 } |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
175 |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
176 public void roll() { |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
177 from.add(intervallField, intervallFactor); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
178 from = adjustSubIntField(from, teilVon); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
179 } |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
180 |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
181 } |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
182 // end Intervall class |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
183 |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
184 |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
185 @Inject Logger logger; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
186 |
691
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
187 /** |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
188 * The data repository |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
189 */ |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
190 @Inject |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
191 @RepositoryConfig(type = RepositoryType.RW) |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
192 private Repository repository; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
193 |
691
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
194 /** |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
195 * Create a list of probe objects |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
196 * |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
197 * @param id Messprogramm id |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
198 * @param from The start date |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
199 * @param to The end date |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
200 * |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
201 * @return List of probe objects. |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
202 */ |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
203 public List<LProbe> create(String id, Long from, Long to) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
204 QueryBuilder<Messprogramm> builder = |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
205 new QueryBuilder<Messprogramm>( |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
206 repository.entityManager("land"), |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
207 Messprogramm.class); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
208 builder.and("id", id); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
209 Response response = repository.filter(builder.getQuery(), "land"); |
685
3118fbbe6292
Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
684
diff
changeset
|
210 @SuppressWarnings("unchecked") |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
211 List<Messprogramm> messprogramme = |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
212 (List<Messprogramm>)response.getData(); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
213 if (messprogramme == null || messprogramme.isEmpty()) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
214 return null; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
215 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
216 Messprogramm messprogramm = messprogramme.get(0); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
217 Calendar start = Calendar.getInstance(); |
1061
f3331174b1ae
Avoid detour via Date object.
Tom Gottfried <tom@intevation.de>
parents:
1060
diff
changeset
|
218 start.setTimeInMillis(from); |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
219 Calendar end = Calendar.getInstance(); |
1061
f3331174b1ae
Avoid detour via Date object.
Tom Gottfried <tom@intevation.de>
parents:
1060
diff
changeset
|
220 end.setTimeInMillis(to); |
1064
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
221 |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
222 List<LProbe> proben = new ArrayList<LProbe>(); |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
223 |
1064
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
224 if (fieldsTable.keySet().contains(messprogramm.getProbenintervall())) { |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
225 proben.addAll(generateMonthly(messprogramm, start, end)); |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
226 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
227 else { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
228 Date[][] intervals = calculateIntervals(start, end, messprogramm); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
229 for (Date[] interval : intervals) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
230 createProben(interval, messprogramm, proben); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
231 } |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
232 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
233 return proben; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
234 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
235 |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
236 /** |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
237 * Create LProbe objects using the interval and messprogramm details. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
238 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
239 * @param interval The time interval for probe objects. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
240 * @param messprogramm The messprogramm containing details. |
1060
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
241 * @param proben An (empty) list for probe objects |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
242 * filled by this method |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
243 * @return |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
244 */ |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
245 private void createProben( |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
246 Date[] interval, |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
247 Messprogramm messprogramm, |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
248 List<LProbe> proben |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
249 ) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
250 Calendar start = Calendar.getInstance(); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
251 start.setTime(interval[0]); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
252 int startDay = start.get(Calendar.DAY_OF_YEAR); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
253 Calendar end = Calendar.getInstance(); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
254 end.setTime(interval[1]); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
255 int endDay = end.get(Calendar.DAY_OF_YEAR); |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
256 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
257 // If fixed interval (T, W, W2, W4) |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
258 if ("T".equals(messprogramm.getProbenintervall())) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
259 proben.addAll(generate(messprogramm, start, end, 1)); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
260 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
261 else if ("W".equals(messprogramm.getProbenintervall())) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
262 Calendar realStart = getMonday(start); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
263 proben.addAll(generate(messprogramm, realStart, end, 7)); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
264 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
265 else if ("W2".equals(messprogramm.getProbenintervall())) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
266 Calendar realStart = getMonday(start); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
267 proben.addAll(generate(messprogramm, realStart, end, 14)); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
268 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
269 else if ("W4".equals(messprogramm.getProbenintervall())) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
270 Calendar realStart = getMonday(start); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
271 proben.addAll(generate(messprogramm, realStart, end, 28)); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
272 } |
1060
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
273 else if ("J".equals(messprogramm.getProbenintervall())) { |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
274 int offset = messprogramm.getIntervallOffset(); |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
275 int teilVon = messprogramm.getTeilintervallVon(); |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
276 int teilBis = messprogramm.getTeilintervallBis(); |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
277 |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
278 if (teilVon >= startDay + offset |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
279 && teilBis <= endDay + offset |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
280 ) { |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
281 start.add(Calendar.DATE, teilVon - startDay + offset); |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
282 Date startDate = start.getTime(); |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
283 end.add(Calendar.DATE, teilBis - endDay + offset); |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
284 Date endDate = end.getTime(); |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
285 LProbe probe = createObjects(messprogramm, startDate, endDate); |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
286 if (probe != null) { |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
287 proben.add(probe); |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
288 } |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
289 } |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
290 } |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
291 } |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
292 |
1064
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
293 private List<LProbe> generateMonthly( |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
294 Messprogramm messprogramm, |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
295 Calendar start, |
1057
6d26e94b643e
Remove unused redundant arguments.
Tom Gottfried <tom@intevation.de>
parents:
981
diff
changeset
|
296 Calendar end |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
297 ) { |
1064
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
298 logger.debug("start: " + start); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
299 |
1062
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
300 int gueltigVon = messprogramm.getGueltigVon(); |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
301 int gueltigBis = messprogramm.getGueltigBis(); |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
302 |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
303 List<LProbe> proben = new ArrayList<LProbe>(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
304 |
1064
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
305 for (Intervall intervall = new Intervall(messprogramm, start); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
306 intervall.getFrom().before(end.getTime()); |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
307 intervall.roll() |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
308 ) { |
1062
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
309 /* Leap year adaption of validity period. |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
310 * It is assumed here (and should be enforced by the data model) |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
311 * that gueltigVon and gueltigBis are always given relative to |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
312 * a non-leap year. E.g. a value of 59 is assumed to denote |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
313 * March 1 and thus has to be adapted in a leap year. */ |
1064
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
314 int leapDay = intervall.startInLeapYear() ? 1 : 0; |
1062
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
315 int actualGueltigVon = |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
316 gueltigVon > 58 |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
317 ? gueltigVon + leapDay |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
318 : gueltigVon; |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
319 int actualGueltigBis = |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
320 gueltigBis > 58 |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
321 ? gueltigBis + leapDay |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
322 : gueltigBis; |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
323 |
1064
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
324 int solldatumBeginnDOY = intervall.getStartDOY(); |
1062
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
325 |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
326 if (( |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
327 // Validity within one year |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
328 actualGueltigVon < actualGueltigBis |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
329 && solldatumBeginnDOY >= actualGueltigVon |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
330 && solldatumBeginnDOY <= actualGueltigBis |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
331 ) || ( |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
332 // Validity over turn of the year |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
333 actualGueltigVon > actualGueltigBis |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
334 && (solldatumBeginnDOY >= actualGueltigVon |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
335 || solldatumBeginnDOY <= actualGueltigBis) |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
336 ) |
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
337 ) { |
1060
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
338 LProbe probe = createObjects( |
1062
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
339 messprogramm, |
1064
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
340 intervall.getFrom(), |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
341 intervall.getTo() |
1062
0fbcaefc565b
Make generation of monthly Probes respect actual lenght of months.
Tom Gottfried <tom@intevation.de>
parents:
1061
diff
changeset
|
342 ); |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
343 if (probe != null) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
344 proben.add(probe); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
345 } |
1064
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
346 } else { |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
347 logger.debug(solldatumBeginnDOY + " not within validity " |
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
348 + actualGueltigVon + " to " + actualGueltigBis); |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
349 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
350 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
351 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
352 return proben; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
353 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
354 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
355 private List<LProbe> generate( |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
356 Messprogramm messprogramm, |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
357 Calendar start, |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
358 Calendar end, |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
359 int days |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
360 ) { |
1059
a435b9fd1d85
Set default in data model instead of on generation of Probe objects.
Tom Gottfried <tom@intevation.de>
parents:
1058
diff
changeset
|
361 int offset = messprogramm.getIntervallOffset(); |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
362 int startDay = start.get(Calendar.DAY_OF_YEAR) + |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
363 messprogramm.getTeilintervallVon() - 1 + offset; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
364 int endDay = end.get(Calendar.DAY_OF_YEAR); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
365 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
366 List<LProbe> proben = new ArrayList<LProbe>(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
367 int duration = messprogramm.getTeilintervallBis() - |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
368 messprogramm.getTeilintervallVon(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
369 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
370 logger.debug("real start day: " + startDay); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
371 logger.debug("real end day" + endDay); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
372 for (;startDay <= endDay;) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
373 logger.debug("generate from " + startDay); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
374 start.set(Calendar.DAY_OF_YEAR, startDay); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
375 end.set(Calendar.DAY_OF_YEAR, startDay + duration); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
376 logger.debug("from: " + start.getTime() + " to " + end.getTime()); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
377 startDay += days; |
1060
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
378 LProbe probe = createObjects( |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
379 messprogramm, start.getTime(), end.getTime()); |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
380 if (probe != null) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
381 proben.add(probe); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
382 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
383 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
384 return proben; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
385 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
386 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
387 private Calendar getMonday(Calendar week) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
388 if (week.get(Calendar.DAY_OF_WEEK) > 1) { |
1060
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
389 week.set(Calendar.WEEK_OF_YEAR, |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
390 week.get(Calendar.WEEK_OF_YEAR) + 1); |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
391 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
392 week.set(Calendar.DAY_OF_WEEK, week.getFirstDayOfWeek()); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
393 return week; |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
394 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
395 |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
396 /** |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
397 * Create a single probe object. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
398 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
399 * @param messprogramm The messprogramm containing probe details |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
400 * @param startDate The date for 'solldatumbeginn' |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
401 * @param endDate The date for 'solldatumende' |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
402 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
403 * @return The new probe object. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
404 */ |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
405 private LProbe createObjects( |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
406 Messprogramm messprogramm, |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
407 Date startDate, |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
408 Date endDate |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
409 ) { |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
410 QueryBuilder<LProbe> builderProbe = |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
411 new QueryBuilder<LProbe>( |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
412 repository.entityManager("land"), |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
413 LProbe.class); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
414 builderProbe.and("mprId", messprogramm.getId()); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
415 builderProbe.and("solldatumBeginn", startDate); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
416 builderProbe.and("solldatumEnde", endDate); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
417 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
418 List<LProbe> proben = |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
419 repository.filterPlain(builderProbe.getQuery(), "land"); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
420 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
421 if (!proben.isEmpty()) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
422 return null; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
423 } |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
424 LProbe probe = new LProbe(); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
425 probe.setBaId(messprogramm.getBaId()); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
426 probe.setDatenbasisId(messprogramm.getDatenbasisId()); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
427 probe.setMediaDesk(messprogramm.getMediaDesk()); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
428 probe.setMstId(messprogramm.getMstId()); |
896
c94a07959060
Use the laborMstId in generated probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
810
diff
changeset
|
429 probe.setLaborMstId(messprogramm.getLaborMstId()); |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
430 probe.setNetzbetreiberId(messprogramm.getNetzbetreiberId()); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
431 probe.setProbenartId(messprogramm.getProbenartId()); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
432 probe.setProbeNehmerId(messprogramm.getProbeNehmerId()); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
433 probe.setSolldatumBeginn(new Timestamp(startDate.getTime())); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
434 probe.setSolldatumEnde(new Timestamp(endDate.getTime())); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
435 probe.setTest(messprogramm.getTest()); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
436 probe.setUmwId(messprogramm.getUmwId()); |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
437 probe.setMprId(messprogramm.getId()); |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
438 repository.create(probe, "land"); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
439 ProbeTranslation translation = new ProbeTranslation(); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
440 translation.setProbeId(probe); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
441 repository.create(translation, "land"); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
442 |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
443 if (messprogramm.getProbeKommentar() != null && |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
444 !messprogramm.getProbeKommentar().equals("")) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
445 LKommentarP kommentar = new LKommentarP(); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
446 kommentar.setDatum(new Timestamp(new Date().getTime())); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
447 kommentar.setProbeId(probe.getId()); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
448 kommentar.setText(messprogramm.getProbeKommentar()); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
449 kommentar.setErzeuger(messprogramm.getMstId()); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
450 |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
451 repository.create(kommentar, "land"); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
452 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
453 |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
454 QueryBuilder<MessprogrammMmt> builder = |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
455 new QueryBuilder<MessprogrammMmt>( |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
456 repository.entityManager("land"), |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
457 MessprogrammMmt.class); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
458 builder.and("messprogrammId", messprogramm.getId()); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
459 Response response = repository.filter(builder.getQuery(), "land"); |
685
3118fbbe6292
Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
684
diff
changeset
|
460 @SuppressWarnings("unchecked") |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
461 List<MessprogrammMmt> mmts = (List<MessprogrammMmt>)response.getData(); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
462 for (MessprogrammMmt mmt : mmts) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
463 LMessung messung = new LMessung(); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
464 messung.setFertig(false); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
465 messung.setGeplant(true); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
466 messung.setMmtId(mmt.getMmtId()); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
467 messung.setNebenprobenNr( |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
468 messprogramm.getNetzbetreiberId() + mmt.getMmtId()); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
469 messung.setProbeId(probe.getId()); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
470 repository.create(messung, "land"); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
471 MessungTranslation mTranslation = new MessungTranslation(); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
472 mTranslation.setMessungsId(messung); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
473 repository.create(mTranslation, "land"); |
897
67c3d22372e4
Add the initial status to generated messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
896
diff
changeset
|
474 |
67c3d22372e4
Add the initial status to generated messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
896
diff
changeset
|
475 LStatusProtokoll status = new LStatusProtokoll(); |
67c3d22372e4
Add the initial status to generated messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
896
diff
changeset
|
476 status.setDatum(new Timestamp(new Date().getTime())); |
67c3d22372e4
Add the initial status to generated messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
896
diff
changeset
|
477 status.setMessungsId(messung.getId()); |
67c3d22372e4
Add the initial status to generated messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
896
diff
changeset
|
478 status.setErzeuger(probe.getMstId()); |
67c3d22372e4
Add the initial status to generated messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
896
diff
changeset
|
479 status.setStatusStufe(1); |
67c3d22372e4
Add the initial status to generated messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
896
diff
changeset
|
480 status.setStatusWert(0); |
67c3d22372e4
Add the initial status to generated messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
896
diff
changeset
|
481 repository.create(status, "land"); |
67c3d22372e4
Add the initial status to generated messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
896
diff
changeset
|
482 messung.setStatus(status.getId()); |
67c3d22372e4
Add the initial status to generated messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
896
diff
changeset
|
483 repository.update(messung, "land"); |
67c3d22372e4
Add the initial status to generated messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
896
diff
changeset
|
484 |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
485 for (int mw : mmt.getMessgroessen()) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
486 LMesswert wert = new LMesswert(); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
487 wert.setMessgroesseId(mw); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
488 wert.setMessungsId(messung.getId()); |
914
54e83373bfae
We need a wider range to allow arbitrary input formated +-9.99e+-99
Tom Gottfried <tom@intevation.de>
parents:
897
diff
changeset
|
489 wert.setMesswert(0d); |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
490 wert.setMehId(1); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
491 repository.create(wert, "land"); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
492 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
493 } |
698
cd22674b4673
Fixed ort generation from messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
697
diff
changeset
|
494 if (messprogramm.getOrtId() != null && |
cd22674b4673
Fixed ort generation from messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
697
diff
changeset
|
495 !messprogramm.getOrtId().equals("")) { |
810
092e673cbb8d
Added and updated model, services, etc for to fit the new db schema.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
735
diff
changeset
|
496 LOrtszuordnung ort = new LOrtszuordnung(); |
092e673cbb8d
Added and updated model, services, etc for to fit the new db schema.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
735
diff
changeset
|
497 ort.setOrtszuordnungTyp("E"); |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
498 ort.setProbeId(probe.getId()); |
810
092e673cbb8d
Added and updated model, services, etc for to fit the new db schema.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
735
diff
changeset
|
499 QueryBuilder<Ort> ortBuilder = new QueryBuilder<Ort>( |
092e673cbb8d
Added and updated model, services, etc for to fit the new db schema.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
735
diff
changeset
|
500 repository.entityManager("stamm"), Ort.class); |
698
cd22674b4673
Fixed ort generation from messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
697
diff
changeset
|
501 ortBuilder.and("id", messprogramm.getOrtId()); |
1060
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
502 Response ortResponse = repository.filter( |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
503 ortBuilder.getQuery(), "stamm"); |
685
3118fbbe6292
Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
684
diff
changeset
|
504 @SuppressWarnings("unchecked") |
810
092e673cbb8d
Added and updated model, services, etc for to fit the new db schema.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
735
diff
changeset
|
505 List<Ort> orte = (List<Ort>) ortResponse.getData(); |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
506 if (orte != null && !orte.isEmpty()) { |
810
092e673cbb8d
Added and updated model, services, etc for to fit the new db schema.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
735
diff
changeset
|
507 ort.setOrtId(Long.valueOf(orte.get(0).getId())); |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
508 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
509 repository.create(ort, "land"); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
510 } |
680
a5e6580e8016
Reload the created probe object to have the 'probeIdAlt' field available.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
656
diff
changeset
|
511 // Reolad the probe to have the old id |
1060
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
512 probe = (LProbe)repository.getById( |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
513 LProbe.class, probe.getId(), "land").getData(); |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
514 return probe; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
515 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
516 |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
517 /** |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
518 * Determine the interval for probe generation using a start date, end date |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
519 * and the messprogramm. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
520 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
521 * @param start Calendar object defining the start of the first interval |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
522 * @param end Calendar object defining the end of the last interval. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
523 * @param messprogramm The messprogramm |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
524 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
525 * @return An array of start/end pairs. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
526 */ |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
527 private Date[][] calculateIntervals( |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
528 Calendar start, |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
529 Calendar end, |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
530 Messprogramm messprogramm |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
531 ) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
532 int realStart = start.get(Calendar.DAY_OF_YEAR); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
533 int realEnd = end.get(Calendar.DAY_OF_YEAR); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
534 int startYear = start.get(Calendar.YEAR); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
535 int endYear = end.get(Calendar.YEAR); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
536 int years = (endYear - startYear) + 1; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
537 Date[][] intervals = new Date[years][2]; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
538 for (int i = 0; i < years; i++) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
539 Calendar cStart = Calendar.getInstance(); |
1060
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
540 cStart.set( |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
541 startYear + i, |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
542 start.get(Calendar.MONTH), |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
543 start.get(Calendar.DAY_OF_MONTH) |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
544 ); |
1058
0d0362fe7619
Remove null-checks for already validated mandatory fields.
Tom Gottfried <tom@intevation.de>
parents:
1057
diff
changeset
|
545 if (messprogramm.getGueltigVon() <= 0 |
0d0362fe7619
Remove null-checks for already validated mandatory fields.
Tom Gottfried <tom@intevation.de>
parents:
1057
diff
changeset
|
546 || (realStart > messprogramm.getGueltigVon() && i == 0) |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
547 ) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
548 intervals[0][0] = start.getTime(); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
549 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
550 else { |
1060
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
551 start.add(Calendar.DATE, |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
552 messprogramm.getGueltigVon() - realStart); |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
553 Date startDate = start.getTime(); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
554 intervals[i][0] = startDate; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
555 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
556 |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
557 Calendar cEnd = Calendar.getInstance(); |
1060
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
558 cEnd.set( |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
559 startYear + i, |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
560 end.get(Calendar.MONTH), |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
561 end.get(Calendar.DAY_OF_MONTH) |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
562 ); |
1058
0d0362fe7619
Remove null-checks for already validated mandatory fields.
Tom Gottfried <tom@intevation.de>
parents:
1057
diff
changeset
|
563 if (messprogramm.getGueltigBis() <= 0 |
0d0362fe7619
Remove null-checks for already validated mandatory fields.
Tom Gottfried <tom@intevation.de>
parents:
1057
diff
changeset
|
564 || (realEnd < messprogramm.getGueltigBis() && i == years - 1) |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
565 ) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
566 intervals[i][1] = cEnd.getTime(); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
567 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
568 else { |
1060
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
569 cEnd.add(Calendar.DATE, |
cf5a2de206e3
Improve readability for easier debugging.
Tom Gottfried <tom@intevation.de>
parents:
1059
diff
changeset
|
570 messprogramm.getGueltigBis() - realEnd); |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
571 Date endDate = cEnd.getTime(); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
572 intervals[i][1] = endDate; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
573 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
574 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
575 |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
576 return intervals; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
577 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
578 |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
579 |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
580 /** |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
581 * Search for the umwelt id using the 'deskriptor'. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
582 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
583 * @param probe The probe object. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
584 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
585 * @return The updated probe object. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
586 */ |
697
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
587 public LProbe findUmweltId(LProbe probe) { |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
588 String[] mediaDesk = probe.getMediaDesk().split(" "); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
589 if (mediaDesk.length <= 1) { |
697
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
590 return probe; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
591 } |
697
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
592 probe.setUmwId(findUmwelt(mediaDesk)); |
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
593 return probe; |
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
594 } |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
595 |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
596 /** |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
597 * Search for the media description using the 'deskriptor'. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
598 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
599 * @param probe The probe object |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
600 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
601 * @return The updated probe object. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
602 */ |
709
e502e1af6256
added autofill Mediadescription
Marco Lechner, Bundesamt fuer Strahlenschutz, SW 2.1 <mlechner@bfs.de>
parents:
698
diff
changeset
|
603 public LProbe findMediaDesk(LProbe probe) { |
713
d8e421d9d7ec
Fixed possible NPE.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
711
diff
changeset
|
604 Object result = repository.queryFromString( |
d8e421d9d7ec
Fixed possible NPE.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
711
diff
changeset
|
605 "SELECT get_media_from_media_desk( :mediaDesk );", "stamm") |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
606 .setParameter("mediaDesk", probe.getMediaDesk()) |
713
d8e421d9d7ec
Fixed possible NPE.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
711
diff
changeset
|
607 .getSingleResult(); |
d8e421d9d7ec
Fixed possible NPE.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
711
diff
changeset
|
608 probe.setMedia(result != null ? result.toString() : ""); |
709
e502e1af6256
added autofill Mediadescription
Marco Lechner, Bundesamt fuer Strahlenschutz, SW 2.1 <mlechner@bfs.de>
parents:
698
diff
changeset
|
609 return probe; |
e502e1af6256
added autofill Mediadescription
Marco Lechner, Bundesamt fuer Strahlenschutz, SW 2.1 <mlechner@bfs.de>
parents:
698
diff
changeset
|
610 } |
697
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
611 |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
612 /** |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
613 * Search for the umwelt id using the 'deskriptor'. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
614 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
615 * @param messprogramm The messprogramm |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
616 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
617 * @return The updated messprogramm. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
618 */ |
697
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
619 public Messprogramm findUmweltId(Messprogramm messprogramm) { |
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
620 String[] mediaDesk = messprogramm.getMediaDesk().split(" "); |
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
621 if (mediaDesk.length <= 1) { |
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
622 return messprogramm; |
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
623 } |
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
624 messprogramm.setUmwId(findUmwelt(mediaDesk)); |
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
625 return messprogramm; |
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
626 } |
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
627 |
1064
8ec6a2a31171
Generalize generation of Proben for (multiples of) months.
Tom Gottfried <tom@intevation.de>
parents:
1062
diff
changeset
|
628 |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
629 /** |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
630 * Find the umwelt id for a given deskriptor. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
631 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
632 * @param mediaDesk The deskriptor string |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
633 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
634 * @return The umwelt id or an empty string. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
635 */ |
697
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
636 private String findUmwelt(String[] mediaDesk) { |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
637 List<Integer> mediaIds = new ArrayList<Integer>(); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
638 boolean zebs = false; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
639 Integer parent = null; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
640 Integer hdParent = null; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
641 Integer ndParent = null; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
642 if ("01".equals(mediaDesk[1])) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
643 zebs = true; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
644 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
645 for (int i = 1; i < mediaDesk.length; i++) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
646 if ("00".equals(mediaDesk[i])) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
647 mediaIds.add(-1); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
648 continue; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
649 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
650 if (zebs && i < 5) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
651 parent = hdParent; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
652 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
653 else if (!zebs && i < 3) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
654 parent = hdParent; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
655 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
656 else { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
657 parent = ndParent; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
658 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
659 QueryBuilder<Deskriptoren> builder = new QueryBuilder<Deskriptoren>( |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
660 repository.entityManager("stamm"), Deskriptoren.class); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
661 if (parent != null) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
662 builder.and("vorgaenger", parent); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
663 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
664 builder.and("sn", mediaDesk[i]); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
665 builder.and("ebene", i - 1); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
666 Response response = repository.filter(builder.getQuery(), "stamm"); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
667 @SuppressWarnings("unchecked") |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
668 List<Deskriptoren> data = (List<Deskriptoren>)response.getData(); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
669 if (data.isEmpty()) { |
697
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
670 return ""; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
671 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
672 hdParent = data.get(0).getId(); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
673 mediaIds.add(data.get(0).getId()); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
674 if (i == 2) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
675 ndParent = data.get(0).getId(); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
676 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
677 } |
697
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
678 return getUmwelt(mediaIds, zebs); |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
679 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
680 |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
681 /** |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
682 * Find the umwelt id in the database using media deskriptor ids. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
683 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
684 * @param media The list of media ids. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
685 * @param isZebs Flag for type of the deskriptor. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
686 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
687 * @return The umwelt id or an empty string. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
688 */ |
697
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
689 private String getUmwelt(List<Integer> media, boolean isZebs) { |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
690 QueryBuilder<DeskriptorUmwelt> builder = |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
691 new QueryBuilder<DeskriptorUmwelt>( |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
692 repository.entityManager("stamm"), DeskriptorUmwelt.class); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
693 |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
694 if (media.size() == 0) { |
697
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
695 return ""; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
696 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
697 |
735
bcaf30a871ef
Set fixed size for first deskriptoren request.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
732
diff
changeset
|
698 int size = 1; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
699 for (int i = size; i >= 0; i--) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
700 if (media.get(i) == -1) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
701 continue; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
702 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
703 String field = "s" + (i > 9 ? i : "0" + i); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
704 builder.and(field, media.get(i)); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
705 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
706 Response response = repository.filter(builder.getQuery(), "stamm"); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
707 @SuppressWarnings("unchecked") |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
708 List<DeskriptorUmwelt> data = (List<DeskriptorUmwelt>)response.getData(); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
709 if (data.isEmpty()) { |
732
83acc3b63354
Fixed size of main descriptor fields and return 'null' instead of "" for empty
Raimund Renkert <raimund.renkert@intevation.de>
parents:
713
diff
changeset
|
710 return null; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
711 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
712 |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
713 boolean unique = isUnique(data); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
714 if (unique) { |
697
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
715 return data.get(0).getUmwId(); |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
716 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
717 else { |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
718 int found = -1; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
719 for (int i = 0; i < data.size(); i++) { |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
720 int matches = 0; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
721 int lastMatch = 0; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
722 for (int j = size + 1; j < 12; j++) { |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
723 switch(j) { |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
724 case 2: if (media.get(2).equals(data.get(i).getS02())) |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
725 matches += 1; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
726 break; |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
727 case 3: if (media.get(3).equals(data.get(i).getS03())) |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
728 matches += 1; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
729 break; |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
730 case 4: if (media.get(4).equals(data.get(i).getS04())) |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
731 matches += 1; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
732 break; |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
733 case 5: if (media.get(5).equals(data.get(i).getS05())) |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
734 matches +=1; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
735 break; |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
736 case 6: if (media.get(6).equals(data.get(i).getS06())) |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
737 matches += 1; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
738 break; |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
739 case 7: if (media.get(7).equals(data.get(i).getS07())) |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
740 matches += 1; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
741 break; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
742 case 8: if (media.get(8).equals(data.get(i).getS08())) |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
743 matches += 1; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
744 break; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
745 case 9: if (media.get(9).equals(data.get(i).getS09())) |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
746 matches += 1; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
747 break; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
748 case 10: if (media.get(10).equals(data.get(i).getS10())) |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
749 matches += 1; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
750 break; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
751 case 11: if (media.get(11).equals(data.get(i).getS11())) |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
752 matches += 1; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
753 break; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
754 case 12: if (media.get(12).equals(data.get(i).getS12())) |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
755 matches += 1; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
756 break; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
757 } |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
758 if (matches > lastMatch) { |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
759 lastMatch = matches; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
760 found = i; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
761 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
762 } |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
763 if (found >= 0) { |
697
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
764 return data.get(found).getUmwId(); |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
765 } |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
766 } |
732
83acc3b63354
Fixed size of main descriptor fields and return 'null' instead of "" for empty
Raimund Renkert <raimund.renkert@intevation.de>
parents:
713
diff
changeset
|
767 return null; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
768 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
769 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
770 |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
771 /** |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
772 * Determine if the entries in the list have the same umwelt id. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
773 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
774 * @param list A list of DescriptorUmwelt objects. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
775 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
776 * @return true if the objects have the same umwelt id else false. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
777 */ |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
778 private boolean isUnique(List<DeskriptorUmwelt> list) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
779 if (list.isEmpty()) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
780 return false; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
781 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
782 String element = list.get(0).getUmwId(); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
783 for (int i = 1; i < list.size(); i++) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
784 if (!element.equals(list.get(i))) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
785 return false; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
786 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
787 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
788 return true; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
789 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
790 |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
791 } |