Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/factory/ProbeFactory.java @ 1084:1868bd3565bf schema-update
update stammdaten.deskriptor_umwelt
author | Michael Stanko <mstanko@bfs.de> |
---|---|
date | Thu, 13 Oct 2016 11:13:46 +0200 |
parents | 1c41c7b8f7c2 |
children |
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; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
15 |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
16 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
|
17 |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
18 import org.apache.log4j.Logger; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
19 |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
20 import de.intevation.lada.model.land.KommentarP; |
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.Messprogramm; |
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.MessprogrammMmt; |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
23 import de.intevation.lada.model.land.Probe; |
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
24 import de.intevation.lada.model.land.Messung; |
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
25 import de.intevation.lada.model.land.Messwert; |
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
26 import de.intevation.lada.model.land.Ortszuordnung; |
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
27 import de.intevation.lada.model.land.StatusProtokoll; |
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
28 import de.intevation.lada.model.stammdaten.DeskriptorUmwelt; |
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
29 import de.intevation.lada.model.stammdaten.Deskriptoren; |
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
30 import de.intevation.lada.model.stammdaten.Ort; |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
31 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
|
32 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
|
33 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
|
34 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
|
35 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
|
36 |
691
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
37 /** |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
38 * This factory creates probe objects and its children using a messprogramm |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
39 * as template. |
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 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
42 */ |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
43 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
|
44 |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
45 @Inject Logger logger; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
46 |
691
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
47 /** |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
48 * The data repository |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
49 */ |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
50 @Inject |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
51 @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
|
52 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
|
53 |
691
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
54 /** |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
55 * Create a list of probe objects |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
56 * |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
57 * @param id Messprogramm id |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
58 * @param from The start date |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
59 * @param to The end date |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
60 * |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
61 * @return List of probe objects. |
46bb231ff9b9
Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
62 */ |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
63 public List<Probe> create(String id, Long from, Long to) { |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
64 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
|
65 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
|
66 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
|
67 Messprogramm.class); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
68 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
|
69 Response response = repository.filter(builder.getQuery(), "land"); |
685
3118fbbe6292
Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
684
diff
changeset
|
70 @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
|
71 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
|
72 (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
|
73 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
|
74 return null; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
75 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
76 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
|
77 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
|
78 start.setTime(new Date(from)); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
79 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
|
80 end.setTime(new Date (to)); |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
81 List<Probe> proben = new ArrayList<Probe>(); |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
82 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
83 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
84 if ("M".equals(messprogramm.getProbenintervall())) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
85 Calendar realStart = getStart ("M", start); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
86 proben.addAll(generateMonth(messprogramm, realStart, end, "M")); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
87 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
88 else if ("Q".equals(messprogramm.getProbenintervall())) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
89 Calendar realStart = getStart ("Q", start); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
90 proben.addAll(generateQuarter(messprogramm, realStart, end, "Q")); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
91 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
92 else if ("H".equals(messprogramm.getProbenintervall())) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
93 Calendar realStart = getStart ("H", start); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
94 proben.addAll(generateHalf(messprogramm, realStart, end, "H")); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
95 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
96 else { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
97 Date[][] intervals = calculateIntervals(start, end, messprogramm); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
98 for (Date[] interval : intervals) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
99 createProben(interval, messprogramm, proben); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
100 } |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
101 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
102 return proben; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
103 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
104 |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
105 /** |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
106 * Create Probe objects using the interval and messprogramm details. |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
107 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
108 * @param interval The time interval for probe objects. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
109 * @param messprogramm The messprogramm containing details. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
110 * @param proben An (empty) list for probe objects filled by this |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
111 * method |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
112 * @return |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
113 */ |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
114 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
|
115 Date[] interval, |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
116 Messprogramm messprogramm, |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
117 List<Probe> proben |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
118 ) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
119 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
|
120 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
|
121 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
|
122 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
|
123 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
|
124 int endDay = end.get(Calendar.DAY_OF_YEAR); |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
125 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
126 // If fixed interval (T, W, W2, W4) |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
127 if ("T".equals(messprogramm.getProbenintervall())) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
128 proben.addAll(generate(messprogramm, start, end, 1)); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
129 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
130 else if ("W".equals(messprogramm.getProbenintervall())) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
131 Calendar realStart = getMonday(start); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
132 proben.addAll(generate(messprogramm, realStart, end, 7)); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
133 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
134 else if ("W2".equals(messprogramm.getProbenintervall())) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
135 Calendar realStart = getMonday(start); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
136 proben.addAll(generate(messprogramm, realStart, end, 14)); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
137 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
138 else if ("W4".equals(messprogramm.getProbenintervall())) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
139 Calendar realStart = getMonday(start); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
140 proben.addAll(generate(messprogramm, realStart, end, 28)); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
141 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
142 else if ("J".equals(messprogramm.getProbenintervall()) && |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
143 messprogramm.getTeilintervallVon() >= startDay + messprogramm.getIntervallOffset() && |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
144 messprogramm.getTeilintervallBis() <= endDay + messprogramm.getIntervallOffset()) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
145 start.add(Calendar.DATE, messprogramm.getTeilintervallVon() - startDay + messprogramm.getIntervallOffset()); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
146 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
|
147 end.add(Calendar.DATE, messprogramm.getTeilintervallBis() - endDay + messprogramm.getIntervallOffset()); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
148 Date endDate = end.getTime(); |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
149 Probe probe = createObjects(messprogramm, startDate, endDate); |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
150 if (probe != null) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
151 proben.add(probe); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
152 } |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
153 return; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
154 } |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
155 } |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
156 |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
157 private List<Probe> generateMonth( |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
158 Messprogramm messprogramm, |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
159 Calendar start, |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
160 Calendar end, |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
161 String interval |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
162 ) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
163 int offset = messprogramm.getIntervallOffset() == null ? |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
164 0 : messprogramm.getIntervallOffset(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
165 int teilVon = messprogramm.getTeilintervallVon() == null ? |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
166 0 : messprogramm.getTeilintervallVon() - 1; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
167 int teilBis = messprogramm.getTeilintervallBis() == null ? |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
168 0 : messprogramm.getTeilintervallBis(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
169 int manualDuration = teilBis - teilVon; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
170 |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
171 List<Probe> proben = new ArrayList<Probe>(); |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
172 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
173 int currentLength = getDurationMonth(start); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
174 if (manualDuration > 0) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
175 currentLength = manualDuration; |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
176 } |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
177 Calendar monthStart = (Calendar)start.clone(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
178 Calendar monthEnd = Calendar.getInstance(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
179 monthStart.add(Calendar.DAY_OF_YEAR, offset + teilVon); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
180 monthEnd.setTime(start.getTime()); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
181 monthEnd.add(Calendar.DAY_OF_YEAR, currentLength - 1); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
182 for (;monthStart.before(end);) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
183 if (monthStart.get(Calendar.DAY_OF_YEAR) > messprogramm.getGueltigVon() && |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
184 monthStart.get(Calendar.DAY_OF_YEAR) < messprogramm.getGueltigBis()) { |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
185 Probe probe = createObjects(messprogramm, monthStart.getTime(), monthEnd.getTime()); |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
186 if (probe != null) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
187 proben.add(probe); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
188 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
189 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
190 monthStart.set(Calendar.DAY_OF_MONTH, 2); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
191 monthStart = getStart("M", monthStart); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
192 monthStart.add(Calendar.DAY_OF_YEAR, offset + teilVon); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
193 if (manualDuration <= 0) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
194 currentLength = getDurationMonth(monthStart); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
195 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
196 monthEnd.setTime(monthStart.getTime()); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
197 monthEnd.add(Calendar.DAY_OF_YEAR, currentLength - 1); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
198 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
199 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
200 return proben; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
201 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
202 |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
203 private List<Probe> generateQuarter( |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
204 Messprogramm messprogramm, |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
205 Calendar start, |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
206 Calendar end, |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
207 String interval |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
208 ) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
209 int offset = messprogramm.getIntervallOffset() == null ? |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
210 0 : messprogramm.getIntervallOffset(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
211 int teilVon = messprogramm.getTeilintervallVon() == null ? |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
212 0 : messprogramm.getTeilintervallVon() - 1; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
213 int teilBis = messprogramm.getTeilintervallBis() == null ? |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
214 0 : messprogramm.getTeilintervallBis(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
215 int manualDuration = teilBis - teilVon; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
216 |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
217 List<Probe> proben = new ArrayList<Probe>(); |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
218 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
219 int currentLength = getDurationQuarter(start); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
220 if (manualDuration > 0) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
221 currentLength = manualDuration; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
222 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
223 Calendar quarterStart = (Calendar)start.clone(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
224 Calendar quarterEnd = Calendar.getInstance(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
225 quarterStart.add(Calendar.DAY_OF_YEAR, offset + teilVon); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
226 quarterEnd.setTime(start.getTime()); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
227 quarterEnd.add(Calendar.DAY_OF_YEAR, currentLength); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
228 for (;quarterStart.before(end);) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
229 if (quarterStart.get(Calendar.DAY_OF_YEAR) > messprogramm.getGueltigVon() && |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
230 quarterStart.get(Calendar.DAY_OF_YEAR) < messprogramm.getGueltigBis()) { |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
231 Probe probe = createObjects(messprogramm, quarterStart.getTime(), quarterEnd.getTime()); |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
232 if (probe != null) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
233 proben.add(probe); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
234 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
235 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
236 quarterStart.set(Calendar.DAY_OF_MONTH, 2); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
237 quarterStart = getStart("Q", quarterStart); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
238 quarterStart.add(Calendar.DAY_OF_YEAR, offset + teilVon); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
239 if (manualDuration <= 0) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
240 currentLength = getDurationQuarter(quarterStart); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
241 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
242 quarterEnd.setTime(quarterStart.getTime()); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
243 quarterEnd.add(Calendar.DAY_OF_YEAR, currentLength); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
244 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
245 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
246 return proben; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
247 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
248 |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
249 private List<Probe> generateHalf( |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
250 Messprogramm messprogramm, |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
251 Calendar start, |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
252 Calendar end, |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
253 String interval |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
254 ) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
255 int offset = messprogramm.getIntervallOffset() == null ? |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
256 0 : messprogramm.getIntervallOffset(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
257 int teilVon = messprogramm.getTeilintervallVon() == null ? |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
258 0 : messprogramm.getTeilintervallVon() - 1; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
259 int teilBis = messprogramm.getTeilintervallBis() == null ? |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
260 0 : messprogramm.getTeilintervallBis(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
261 int manualDuration = teilBis - teilVon; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
262 |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
263 List<Probe> proben = new ArrayList<Probe>(); |
981
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 int currentLength = getDurationHalf(start); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
266 if (manualDuration > 0) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
267 currentLength = manualDuration; |
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 Calendar halfStart = (Calendar)start.clone(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
270 Calendar halfEnd = Calendar.getInstance(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
271 halfStart.add(Calendar.DAY_OF_YEAR, offset + teilVon); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
272 halfEnd.setTime(halfStart.getTime()); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
273 halfEnd.add(Calendar.DAY_OF_YEAR, currentLength); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
274 for (;halfStart.before(end);) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
275 if (halfStart.get(Calendar.DAY_OF_YEAR) > messprogramm.getGueltigVon() && |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
276 halfStart.get(Calendar.DAY_OF_YEAR) < messprogramm.getGueltigBis()) { |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
277 Probe probe = createObjects(messprogramm, halfStart.getTime(), halfEnd.getTime()); |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
278 if (probe != null) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
279 proben.add(probe); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
280 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
281 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
282 halfStart.set(Calendar.DAY_OF_MONTH, 2); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
283 halfStart = getStart("H", halfStart); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
284 halfStart.add(Calendar.DAY_OF_YEAR, offset + teilVon); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
285 if (manualDuration <= 0) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
286 currentLength = getDurationHalf(halfStart); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
287 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
288 halfEnd.setTime(halfStart.getTime()); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
289 halfEnd.add(Calendar.DAY_OF_YEAR, currentLength); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
290 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
291 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
292 return proben; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
293 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
294 |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
295 private List<Probe> generate( |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
296 Messprogramm messprogramm, |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
297 Calendar start, |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
298 Calendar end, |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
299 int days |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
300 ) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
301 int offset = messprogramm.getIntervallOffset() == null ? |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
302 0 : messprogramm.getIntervallOffset(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
303 int startDay = start.get(Calendar.DAY_OF_YEAR) + |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
304 messprogramm.getTeilintervallVon() - 1 + offset; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
305 int endDay = end.get(Calendar.DAY_OF_YEAR); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
306 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
307 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
308 //int teilStart = messprogramm.getTeilintervallVon() + startDay; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
309 //int teilEnd = messprogramm.getTeilintervallBis() + startDay; |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
310 List<Probe> proben = new ArrayList<Probe>(); |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
311 int duration = messprogramm.getTeilintervallBis() - |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
312 messprogramm.getTeilintervallVon(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
313 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
314 logger.debug("real start day: " + startDay); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
315 logger.debug("real end day" + endDay); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
316 for (;startDay <= endDay;) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
317 logger.debug("generate from " + startDay); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
318 start.set(Calendar.DAY_OF_YEAR, startDay); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
319 end.set(Calendar.DAY_OF_YEAR, startDay + duration); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
320 logger.debug("from: " + start.getTime() + " to " + end.getTime()); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
321 startDay += days; |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
322 Probe probe = createObjects(messprogramm, start.getTime(), end.getTime()); |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
323 if (probe != null) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
324 proben.add(probe); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
325 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
326 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
327 return proben; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
328 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
329 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
330 private int getDurationMonth(Calendar month) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
331 return month.getActualMaximum(Calendar.DAY_OF_MONTH); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
332 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
333 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
334 private int getDurationQuarter(Calendar month) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
335 if ((month.get(Calendar.MONTH)) % 3 != 0) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
336 logger.debug("not a valid month!"); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
337 return 91; // Fallback to not generate to much probe objects. |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
338 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
339 int duration = 0; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
340 Calendar tmp = (Calendar)month.clone(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
341 for (int i = 0; i < 3; i++) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
342 duration += tmp.getActualMaximum(Calendar.DAY_OF_MONTH); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
343 tmp.set(Calendar.MONTH, tmp.get(Calendar.MONTH) + 1); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
344 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
345 return duration; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
346 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
347 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
348 private int getDurationHalf(Calendar month) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
349 if ((month.get(Calendar.MONTH)) % 6 != 0) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
350 logger.debug("not a valid month!"); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
351 return 183; // Fallback to not generate to much probe objects. |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
352 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
353 int duration = 0; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
354 Calendar tmp = (Calendar)month.clone(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
355 for (int i = 0; i < 6; i++) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
356 duration += tmp.getActualMaximum(Calendar.DAY_OF_MONTH); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
357 tmp.set(Calendar.MONTH, tmp.get(Calendar.MONTH) + 1); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
358 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
359 return duration - 1; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
360 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
361 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
362 private Calendar getStart(String interval, Calendar date) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
363 Calendar start = Calendar.getInstance(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
364 start.setTime(date.getTime()); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
365 if ("M".equals(interval)) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
366 if (start.get(Calendar.DAY_OF_MONTH) > 1) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
367 int month = start.get(Calendar.MONTH) + 1; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
368 start.set(Calendar.MONTH, month); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
369 start.set(Calendar.DAY_OF_MONTH, 1); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
370 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
371 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
372 else if ("Q".equals(interval)) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
373 int month = start.get(Calendar.MONTH); /* 0 through 11 */ |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
374 int quarter = (month / 3) + 1; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
375 Calendar tmp = (Calendar)start.clone(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
376 logger.debug("in " + quarter + ". quarter"); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
377 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
378 tmp.set(Calendar.MONTH, (quarter * 3)); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
379 logger.debug("its the " + tmp.get(Calendar.MONTH) + ". month"); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
380 tmp.set(Calendar.DAY_OF_MONTH, 1); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
381 int firstDayOfQuarter = tmp.get(Calendar.DAY_OF_YEAR); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
382 if (start.get(Calendar.DAY_OF_YEAR) > firstDayOfQuarter) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
383 if (quarter < 4) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
384 start.set(Calendar.MONTH, (quarter + 1) * 3 - 2); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
385 start.set(Calendar.DAY_OF_MONTH, 1); |
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 else { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
388 // Next year... |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
389 start.set(Calendar.MONTH, 0); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
390 start.set(Calendar.YEAR, start.get(Calendar.YEAR) + 1); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
391 start.set(Calendar.DAY_OF_MONTH, 1); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
392 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
393 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
394 else { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
395 start = (Calendar)tmp.clone(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
396 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
397 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
398 else if ("H".equals(interval)) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
399 int month = start.get(Calendar.MONTH); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
400 int half = (month / 6) + 1; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
401 Calendar tmp = (Calendar)start.clone(); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
402 tmp.set(Calendar.MONTH, half * 6 - 6); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
403 tmp.set(Calendar.DAY_OF_MONTH, 1); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
404 int firstDayOfHalf = tmp.get(Calendar.DAY_OF_YEAR); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
405 if (start.get(Calendar.DAY_OF_YEAR) > firstDayOfHalf) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
406 if (half == 1) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
407 start.set(Calendar.MONTH, (half + 1) * 6 - 6); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
408 start.set(Calendar.DAY_OF_MONTH, 1); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
409 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
410 else { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
411 // Next year... |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
412 start.set(Calendar.MONTH, 0); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
413 start.set(Calendar.YEAR, start.get(Calendar.YEAR) + 1); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
414 start.set(Calendar.DAY_OF_MONTH, 1); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
415 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
416 } |
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 return start; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
419 } |
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 private Calendar getMonday(Calendar week) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
422 if (week.get(Calendar.DAY_OF_WEEK) > 1) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
423 week.set(Calendar.WEEK_OF_YEAR, week.get(Calendar.WEEK_OF_YEAR) + 1); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
424 } |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
425 week.set(Calendar.DAY_OF_WEEK, week.getFirstDayOfWeek()); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
426 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
|
427 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
428 |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
429 /** |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
430 * Create a single probe object. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
431 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
432 * @param messprogramm The messprogramm containing probe details |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
433 * @param startDate The date for 'solldatumbeginn' |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
434 * @param endDate The date for 'solldatumende' |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
435 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
436 * @return The new probe object. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
437 */ |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
438 private Probe createObjects( |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
439 Messprogramm messprogramm, |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
440 Date startDate, |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
441 Date endDate |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
442 ) { |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
443 QueryBuilder<Probe> builderProbe = |
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
444 new QueryBuilder<Probe>( |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
445 repository.entityManager("land"), |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
446 Probe.class); |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
447 builderProbe.and("mprId", messprogramm.getId()); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
448 builderProbe.and("solldatumBeginn", startDate); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
449 builderProbe.and("solldatumEnde", endDate); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
450 |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
451 List<Probe> proben = |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
452 repository.filterPlain(builderProbe.getQuery(), "land"); |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
453 |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
454 if (!proben.isEmpty()) { |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
455 return null; |
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
456 } |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
457 Probe probe = new Probe(); |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
458 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
|
459 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
|
460 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
|
461 probe.setMstId(messprogramm.getMstId()); |
896
c94a07959060
Use the laborMstId in generated probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
810
diff
changeset
|
462 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
|
463 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
|
464 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
|
465 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
|
466 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
|
467 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
|
468 probe.setUmwId(messprogramm.getUmwId()); |
981
84f17f460969
Refactored probe generation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
914
diff
changeset
|
469 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
|
470 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
|
471 |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
472 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
|
473 !messprogramm.getProbeKommentar().equals("")) { |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
474 KommentarP kommentar = new KommentarP(); |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
475 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
|
476 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
|
477 kommentar.setText(messprogramm.getProbeKommentar()); |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
478 kommentar.setMstId(messprogramm.getMstId()); |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
479 |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
480 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
|
481 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
482 |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
483 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
|
484 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
|
485 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
|
486 MessprogrammMmt.class); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
487 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
|
488 Response response = repository.filter(builder.getQuery(), "land"); |
685
3118fbbe6292
Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
684
diff
changeset
|
489 @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
|
490 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
|
491 for (MessprogrammMmt mmt : mmts) { |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
492 Messung messung = new Messung(); |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
493 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
|
494 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
|
495 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
|
496 messung.setNebenprobenNr( |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
497 messprogramm.getMstId() + mmt.getMmtId()); |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
498 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
|
499 repository.create(messung, "land"); |
897
67c3d22372e4
Add the initial status to generated messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
896
diff
changeset
|
500 |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
501 StatusProtokoll status = new StatusProtokoll(); |
897
67c3d22372e4
Add the initial status to generated messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
896
diff
changeset
|
502 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
|
503 status.setMessungsId(messung.getId()); |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
504 status.setMstId(probe.getMstId()); |
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
505 status.setStatusKombi(1); |
897
67c3d22372e4
Add the initial status to generated messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
896
diff
changeset
|
506 repository.create(status, "land"); |
67c3d22372e4
Add the initial status to generated messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
896
diff
changeset
|
507 messung.setStatus(status.getId()); |
67c3d22372e4
Add the initial status to generated messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
896
diff
changeset
|
508 repository.update(messung, "land"); |
67c3d22372e4
Add the initial status to generated messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
896
diff
changeset
|
509 |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
510 for (int mw : mmt.getMessgroessen()) { |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
511 Messwert wert = new Messwert(); |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
512 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
|
513 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
|
514 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
|
515 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
|
516 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
|
517 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
518 } |
698
cd22674b4673
Fixed ort generation from messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
697
diff
changeset
|
519 if (messprogramm.getOrtId() != null && |
cd22674b4673
Fixed ort generation from messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
697
diff
changeset
|
520 !messprogramm.getOrtId().equals("")) { |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
521 Ortszuordnung ort = new Ortszuordnung(); |
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
|
522 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
|
523 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
|
524 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
|
525 repository.entityManager("stamm"), Ort.class); |
698
cd22674b4673
Fixed ort generation from messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
697
diff
changeset
|
526 ortBuilder.and("id", messprogramm.getOrtId()); |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
527 Response ortResponse = repository.filter(ortBuilder.getQuery(), "stamm"); |
685
3118fbbe6292
Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
684
diff
changeset
|
528 @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
|
529 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
|
530 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
|
531 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
|
532 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
533 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
|
534 } |
680
a5e6580e8016
Reload the created probe object to have the 'probeIdAlt' field available.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
656
diff
changeset
|
535 // Reolad the probe to have the old id |
a5e6580e8016
Reload the created probe object to have the 'probeIdAlt' field available.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
656
diff
changeset
|
536 probe = |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
537 (Probe)repository.getById(Probe.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
|
538 return probe; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
539 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
540 |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
541 /** |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
542 * 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
|
543 * and the messprogramm. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
544 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
545 * @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
|
546 * @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
|
547 * @param messprogramm The messprogramm |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
548 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
549 * @return An array of start/end pairs. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
550 */ |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
551 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
|
552 Calendar start, |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
553 Calendar end, |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
554 Messprogramm messprogramm |
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 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
|
557 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
|
558 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
|
559 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
|
560 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
|
561 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
|
562 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
|
563 Calendar cStart = Calendar.getInstance(); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
564 cStart.set(startYear + i, start.get(Calendar.MONTH), start.get(Calendar.DAY_OF_MONTH)); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
565 if (messprogramm.getGueltigVon() == null || |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
566 messprogramm.getGueltigVon() <= 0 || |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
567 (realStart > messprogramm.getGueltigVon() && |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
568 i == 0) |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
569 ) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
570 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
|
571 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
572 else { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
573 start.add(Calendar.DATE, messprogramm.getGueltigVon() - realStart); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
574 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
|
575 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
|
576 } |
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 Calendar cEnd = Calendar.getInstance(); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
579 cEnd.set(startYear + i, end.get(Calendar.MONTH), end.get(Calendar.DAY_OF_MONTH)); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
580 if (messprogramm.getGueltigBis() == null || |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
581 messprogramm.getGueltigBis() <= 0 || |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
582 (realEnd < messprogramm.getGueltigBis() && |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
583 i == years - 1) |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
584 ) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
585 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
|
586 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
587 else { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
588 cEnd.add(Calendar.DATE, messprogramm.getGueltigBis() - realEnd); |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
589 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
|
590 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
|
591 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
592 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
593 |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
594 return intervals; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
595 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
596 |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
597 /** |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
598 * Parse an interval string. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
599 * Posible values are: J, H, Q, M, W4, W2, W, T |
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 * @param interval the interval string. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
602 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
603 * @return the amount of days for the given interval. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
604 */ |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
605 private int parseInterval(String interval) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
606 if ("J".equals(interval)) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
607 return 365; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
608 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
609 else if ("H".equals(interval)) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
610 return 183; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
611 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
612 else if ("Q".equals(interval)) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
613 return 91; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
614 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
615 else if ("M".equals(interval)) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
616 return 30; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
617 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
618 else if ("W4".equals(interval)) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
619 return 28; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
620 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
621 else if ("W2".equals(interval)) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
622 return 14; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
623 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
624 else if ("W".equals(interval)) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
625 return 7; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
626 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
627 else if ("T".equals(interval)) { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
628 return 1; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
629 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
630 else { |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
631 return 0; |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
632 } |
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
633 } |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
634 |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
635 /** |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
636 * Search for the umwelt id using the 'deskriptor'. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
637 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
638 * @param probe The probe object. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
639 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
640 * @return The updated probe object. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
641 */ |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
642 public Probe findUmweltId(Probe probe) { |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
643 String[] mediaDesk = probe.getMediaDesk().split(" "); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
644 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
|
645 return probe; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
646 } |
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
|
647 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
|
648 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
|
649 } |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
650 |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
651 /** |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
652 * Search for the media description using the 'deskriptor'. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
653 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
654 * @param probe The probe object |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
655 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
656 * @return The updated probe object. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
657 */ |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
981
diff
changeset
|
658 public Probe findMediaDesk(Probe probe) { |
713
d8e421d9d7ec
Fixed possible NPE.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
711
diff
changeset
|
659 Object result = repository.queryFromString( |
d8e421d9d7ec
Fixed possible NPE.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
711
diff
changeset
|
660 "SELECT get_media_from_media_desk( :mediaDesk );", "stamm") |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
661 .setParameter("mediaDesk", probe.getMediaDesk()) |
713
d8e421d9d7ec
Fixed possible NPE.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
711
diff
changeset
|
662 .getSingleResult(); |
d8e421d9d7ec
Fixed possible NPE.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
711
diff
changeset
|
663 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
|
664 return probe; |
e502e1af6256
added autofill Mediadescription
Marco Lechner, Bundesamt fuer Strahlenschutz, SW 2.1 <mlechner@bfs.de>
parents:
698
diff
changeset
|
665 } |
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
|
666 |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
667 /** |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
668 * Search for the umwelt id using the 'deskriptor'. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
669 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
670 * @param messprogramm The messprogramm |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
671 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
672 * @return The updated messprogramm. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
673 */ |
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
|
674 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
|
675 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
|
676 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
|
677 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
|
678 } |
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
679 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
|
680 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
|
681 } |
8c486052264c
Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
696
diff
changeset
|
682 |
711
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 * Find the umwelt id for a given deskriptor. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
685 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
686 * @param mediaDesk The deskriptor string |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
687 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
688 * @return The umwelt id or an empty string. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
689 */ |
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
|
690 private String findUmwelt(String[] mediaDesk) { |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
691 List<Integer> mediaIds = new ArrayList<Integer>(); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
692 boolean zebs = false; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
693 Integer parent = null; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
694 Integer hdParent = null; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
695 Integer ndParent = null; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
696 if ("01".equals(mediaDesk[1])) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
697 zebs = true; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
698 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
699 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
|
700 if ("00".equals(mediaDesk[i])) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
701 mediaIds.add(-1); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
702 continue; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
703 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
704 if (zebs && i < 5) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
705 parent = hdParent; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
706 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
707 else if (!zebs && i < 3) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
708 parent = hdParent; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
709 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
710 else { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
711 parent = ndParent; |
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 QueryBuilder<Deskriptoren> builder = new QueryBuilder<Deskriptoren>( |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
714 repository.entityManager("stamm"), Deskriptoren.class); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
715 if (parent != null) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
716 builder.and("vorgaenger", parent); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
717 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
718 builder.and("sn", mediaDesk[i]); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
719 builder.and("ebene", i - 1); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
720 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
|
721 @SuppressWarnings("unchecked") |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
722 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
|
723 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
|
724 return ""; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
725 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
726 hdParent = data.get(0).getId(); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
727 mediaIds.add(data.get(0).getId()); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
728 if (i == 2) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
729 ndParent = data.get(0).getId(); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
730 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
731 } |
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
|
732 return getUmwelt(mediaIds, zebs); |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
733 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
734 |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
735 /** |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
736 * 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
|
737 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
738 * @param media The list of media ids. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
739 * @param isZebs Flag for type of the deskriptor. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
740 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
741 * @return The umwelt id or an empty string. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
742 */ |
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
|
743 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
|
744 QueryBuilder<DeskriptorUmwelt> builder = |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
745 new QueryBuilder<DeskriptorUmwelt>( |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
746 repository.entityManager("stamm"), DeskriptorUmwelt.class); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
747 |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
748 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
|
749 return ""; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
750 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
751 |
735
bcaf30a871ef
Set fixed size for first deskriptoren request.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
732
diff
changeset
|
752 int size = 1; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
753 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
|
754 if (media.get(i) == -1) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
755 continue; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
756 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
757 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
|
758 builder.and(field, media.get(i)); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
759 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
760 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
|
761 @SuppressWarnings("unchecked") |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
762 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
|
763 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
|
764 return null; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
765 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
766 |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
767 boolean unique = isUnique(data); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
768 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
|
769 return data.get(0).getUmwId(); |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
770 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
771 else { |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
772 int found = -1; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
773 for (int i = 0; i < data.size(); i++) { |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
774 int matches = 0; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
775 int lastMatch = 0; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
776 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
|
777 switch(j) { |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
778 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
|
779 matches += 1; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
780 break; |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
781 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
|
782 matches += 1; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
783 break; |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
784 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
|
785 matches += 1; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
786 break; |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
787 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
|
788 matches +=1; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
789 break; |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
790 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
|
791 matches += 1; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
792 break; |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
793 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
|
794 matches += 1; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
795 break; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
796 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
|
797 matches += 1; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
798 break; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
799 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
|
800 matches += 1; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
801 break; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
802 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
|
803 matches += 1; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
804 break; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
805 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
|
806 matches += 1; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
807 break; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
808 } |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
809 if (matches > lastMatch) { |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
810 lastMatch = matches; |
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
811 found = i; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
812 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
813 } |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
814 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
|
815 return data.get(found).getUmwId(); |
696
97ccdf45a4a3
Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
695
diff
changeset
|
816 } |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
817 } |
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
|
818 return null; |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
819 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
820 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
821 |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
822 /** |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
823 * 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
|
824 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
825 * @param list A list of DescriptorUmwelt objects. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
826 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
709
diff
changeset
|
827 * @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
|
828 */ |
695
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
829 private boolean isUnique(List<DeskriptorUmwelt> list) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
830 if (list.isEmpty()) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
831 return false; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
832 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
833 String element = list.get(0).getUmwId(); |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
834 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
|
835 if (!element.equals(list.get(i))) { |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
836 return false; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
837 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
838 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
839 return true; |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
840 } |
b8afbf6c1b5d
Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
691
diff
changeset
|
841 |
656
866d05db7a6a
Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
842 } |