annotate src/main/java/de/intevation/lada/factory/ProbeFactory.java @ 698:cd22674b4673

Fixed ort generation from messprogramme.
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 10 Jul 2015 14:03:56 +0200
parents 8c486052264c
children e502e1af6256
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.math.BigInteger;
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.sql.Timestamp;
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.ArrayList;
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.Calendar;
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.Date;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
15 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
16
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17 import javax.inject.Inject;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19 import de.intevation.lada.model.land.LKommentarP;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20 import de.intevation.lada.model.land.LMessung;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21 import de.intevation.lada.model.land.LMesswert;
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.LOrt;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23 import de.intevation.lada.model.land.LProbe;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 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
25 import de.intevation.lada.model.land.MessprogrammMmt;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 import de.intevation.lada.model.land.MessungTranslation;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 import de.intevation.lada.model.land.ProbeTranslation;
695
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
28 import de.intevation.lada.model.stamm.DeskriptorUmwelt;
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
29 import de.intevation.lada.model.stamm.Deskriptoren;
656
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 import de.intevation.lada.model.stamm.SOrt;
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
691
46bb231ff9b9 Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
45 /**
46bb231ff9b9 Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
46 * The data repository
46bb231ff9b9 Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
47 */
656
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 @Inject
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 @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
50 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
51
691
46bb231ff9b9 Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
52 /**
46bb231ff9b9 Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
53 * Create a list of probe objects
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 * @param id Messprogramm id
46bb231ff9b9 Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
56 * @param from The start date
46bb231ff9b9 Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
57 * @param to The end date
46bb231ff9b9 Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
58 *
46bb231ff9b9 Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
59 * @return List of probe objects.
46bb231ff9b9 Documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
60 */
656
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61 public List<LProbe> create(String id, Long from, Long to) {
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 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
63 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
64 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
65 Messprogramm.class);
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 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
67 Response response = repository.filter(builder.getQuery(), "land");
685
3118fbbe6292 Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 684
diff changeset
68 @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
69 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
70 (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
71 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
72 return null;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
73 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
74 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
75 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
76 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
77 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
78 end.setTime(new Date (to));
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79 Date[][] intervals = calculateIntervals(start, end, messprogramm);
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
80 List<LProbe> proben = new ArrayList<LProbe>();
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
81 for (Date[] interval : intervals) {
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82 createProben(interval, messprogramm, proben);
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
83 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
84 return proben;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
85 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
86
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
87 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
88 Date[] interval,
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
89 Messprogramm messprogramm,
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
90 List<LProbe> proben
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
91 ) {
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92 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
93 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
94 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
95 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
96 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
97 int endDay = 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
98 if ("J".equals(messprogramm.getProbenintervall()) &&
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
99 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
100 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
101 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
102 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
103 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
104 Date endDate = end.getTime();
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
105 LProbe probe = createObjects(messprogramm, startDate, endDate);
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
106 proben.add(probe);
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
107 return;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
108 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
109 int intervalDays = parseInterval(messprogramm.getProbenintervall());
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
110 int teilStart = messprogramm.getTeilintervallVon() + startDay;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
111 int teilEnd = messprogramm.getTeilintervallBis() + startDay;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
112 int offset = messprogramm.getIntervallOffset() == null ? 0 : messprogramm.getIntervallOffset();
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
113
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
114 for (;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
115 teilStart >= startDay + offset && teilEnd <= endDay + offset;) {
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
116 start.add(Calendar.DATE, teilStart - startDay + offset);
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
117 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
118 end.add(Calendar.DATE, teilEnd - endDay + offset);
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
119 Date endDate = end.getTime();
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
120 LProbe probe = createObjects(messprogramm, startDate, endDate);
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
121 proben.add(probe);
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
122 teilStart += intervalDays;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
123 teilEnd += intervalDays;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
124 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
125 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
126 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
127 return;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
128 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
129
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
130 private LProbe createObjects(
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
131 Messprogramm messprogramm,
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
132 Date startDate,
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
133 Date endDate
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
134 ) {
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
135 LProbe probe = new LProbe();
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
136 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
137 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
138 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
139 probe.setMstId(messprogramm.getMstId());
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
140 probe.setNetzbetreiberId(messprogramm.getNetzbetreiberId());
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
141 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
142 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
143 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
144 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
145 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
146 probe.setUmwId(messprogramm.getUmwId());
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
147 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
148 ProbeTranslation translation = new ProbeTranslation();
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
149 translation.setProbeId(probe);
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
150 repository.create(translation, "land");
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
151
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
152 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
153 !messprogramm.getProbeKommentar().equals("")) {
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
154 LKommentarP kommentar = new LKommentarP();
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
155 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
156 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
157 kommentar.setText(messprogramm.getProbeKommentar());
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
158 kommentar.setErzeuger(messprogramm.getMstId());
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
159
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
160 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
161 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
162
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
163 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
164 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
165 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
166 MessprogrammMmt.class);
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
167 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
168 Response response = repository.filter(builder.getQuery(), "land");
685
3118fbbe6292 Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 684
diff changeset
169 @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
170 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
171 for (MessprogrammMmt mmt : mmts) {
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
172 LMessung messung = new LMessung();
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
173 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
174 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
175 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
176 messung.setNebenprobenNr(
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
177 messprogramm.getNetzbetreiberId() + mmt.getMmtId());
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
178 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
179 repository.create(messung, "land");
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
180 MessungTranslation mTranslation = new MessungTranslation();
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
181 mTranslation.setMessungsId(messung);
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
182 repository.create(mTranslation, "land");
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
183 for (int mw : mmt.getMessgroessen()) {
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
184 LMesswert wert = new LMesswert();
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
185 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
186 wert.setMessungsId(messung.getId());
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
187 wert.setMesswert(0f);
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
188 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
189 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
190 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
191 }
698
cd22674b4673 Fixed ort generation from messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 697
diff changeset
192 if (messprogramm.getOrtId() != null &&
cd22674b4673 Fixed ort generation from messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 697
diff changeset
193 !messprogramm.getOrtId().equals("")) {
656
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
194 LOrt ort = new LOrt();
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
195 ort.setOrtsTyp("E");
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
196 ort.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
197 QueryBuilder<SOrt> ortBuilder = new QueryBuilder<SOrt>(
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
198 repository.entityManager("stamm"), SOrt.class);
698
cd22674b4673 Fixed ort generation from messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 697
diff changeset
199 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
200 Response ortResponse = repository.filter(ortBuilder.getQuery(), "stamm");
685
3118fbbe6292 Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 684
diff changeset
201 @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
202 List<SOrt> orte = (List<SOrt>) ortResponse.getData();
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
203 if (orte != null && !orte.isEmpty()) {
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
204 ort.setOrt(BigInteger.valueOf(orte.get(0).getId()));
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
205 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
206 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
207 }
680
a5e6580e8016 Reload the created probe object to have the 'probeIdAlt' field available.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 656
diff changeset
208 // 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
209 probe =
a5e6580e8016 Reload the created probe object to have the 'probeIdAlt' field available.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 656
diff changeset
210 (LProbe)repository.getById(LProbe.class, probe.getId(), "land").getData();
656
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
211 return probe;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
212 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
213
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
214 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
215 Calendar start,
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
216 Calendar end,
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
217 Messprogramm messprogramm
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
218 ) {
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
219 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
220 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
221 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
222 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
223 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
224 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
225 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
226 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
227 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
228 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
229 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
230 (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
231 i == 0)
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
232 ) {
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
233 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
234 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
235 else {
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
236 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
237 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
238 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
239 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
240
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
241 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
242 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
243 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
244 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
245 (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
246 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
247 ) {
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
248 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
249 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
250 else {
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
251 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
252 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
253 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
254 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
255 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
256
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
257 return intervals;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
258 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
259
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
260 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
261 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
262 return 365;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
263 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
264 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
265 return 183;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
266 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
267 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
268 return 91;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
269 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
270 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
271 return 30;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
272 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
273 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
274 return 28;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
275 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
276 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
277 return 14;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
278 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
279 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
280 return 7;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
281 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
282 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
283 return 1;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
284 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
285 else {
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
286 return 0;
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
287 }
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
288 }
695
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
289
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
290 public LProbe findUmweltId(LProbe probe) {
695
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
291 String[] mediaDesk = probe.getMediaDesk().split(" ");
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
292 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
293 return probe;
695
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
294 }
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
295 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
296 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
297 }
8c486052264c Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 696
diff changeset
298
8c486052264c Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 696
diff changeset
299 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
300 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
301 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
302 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
303 }
8c486052264c Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 696
diff changeset
304 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
305 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
306 }
8c486052264c Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 696
diff changeset
307
8c486052264c Refactored finding the umwelt id to be able to use it for messprogramme.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 696
diff changeset
308 private String findUmwelt(String[] mediaDesk) {
695
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
309 List<Integer> mediaIds = new ArrayList<Integer>();
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
310 boolean zebs = false;
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
311 Integer parent = null;
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
312 Integer hdParent = null;
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
313 Integer ndParent = null;
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
314 if ("01".equals(mediaDesk[1])) {
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
315 zebs = true;
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
316 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
317 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
318 if ("00".equals(mediaDesk[i])) {
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
319 mediaIds.add(-1);
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
320 continue;
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
321 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
322 if (zebs && i < 5) {
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
323 parent = hdParent;
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
324 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
325 else if (!zebs && i < 3) {
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
326 parent = hdParent;
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
327 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
328 else {
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
329 parent = ndParent;
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
330 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
331 QueryBuilder<Deskriptoren> builder = new QueryBuilder<Deskriptoren>(
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
332 repository.entityManager("stamm"), Deskriptoren.class);
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
333 if (parent != null) {
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
334 builder.and("vorgaenger", parent);
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
335 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
336 builder.and("sn", mediaDesk[i]);
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
337 builder.and("ebene", i - 1);
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
338 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
339 @SuppressWarnings("unchecked")
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
340 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
341 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
342 return "";
695
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
343 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
344 hdParent = data.get(0).getId();
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
345 mediaIds.add(data.get(0).getId());
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
346 if (i == 2) {
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
347 ndParent = data.get(0).getId();
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
348 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
349 }
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
350 return getUmwelt(mediaIds, zebs);
695
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
351 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
352
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
353 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
354 QueryBuilder<DeskriptorUmwelt> builder =
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
355 new QueryBuilder<DeskriptorUmwelt>(
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
356 repository.entityManager("stamm"), DeskriptorUmwelt.class);
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
357
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
358 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
359 return "";
695
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
360 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
361
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
362 int size = 1;
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
363 if (isZebs) {
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
364 size = 2;
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
365 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
366 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
367 if (media.get(i) == -1) {
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
368 continue;
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
369 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
370 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
371 builder.and(field, media.get(i));
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
372 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
373 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
374 @SuppressWarnings("unchecked")
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
375 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
376 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
377 return "";
695
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
378 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
379
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
380 boolean unique = isUnique(data);
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
381 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
382 return data.get(0).getUmwId();
695
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
383 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
384 else {
696
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
385 int found = -1;
695
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
386 for (int i = 0; i < data.size(); i++) {
696
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
387 int matches = 0;
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
388 int lastMatch = 0;
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
389 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
390 switch(j) {
696
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
391 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
392 matches += 1;
695
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
393 break;
696
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
394 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
395 matches += 1;
695
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
396 break;
696
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
397 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
398 matches += 1;
695
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
399 break;
696
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
400 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
401 matches +=1;
695
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
402 break;
696
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
403 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
404 matches += 1;
695
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
405 break;
696
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
406 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
407 matches += 1;
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
408 break;
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
409 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
410 matches += 1;
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
411 break;
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
412 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
413 matches += 1;
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
414 break;
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
415 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
416 matches += 1;
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
417 break;
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
418 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
419 matches += 1;
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
420 break;
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
421 case 12: if (media.get(12).equals(data.get(i).getS12()))
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
422 matches += 1;
695
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
423 break;
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
424 }
696
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
425 if (matches > lastMatch) {
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
426 lastMatch = matches;
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
427 found = i;
695
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
428 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
429 }
696
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
430 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
431 return data.get(found).getUmwId();
696
97ccdf45a4a3 Find the correct umweltbereich.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 695
diff changeset
432 }
695
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
433 }
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
434 return "";
695
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
435 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
436 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
437
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
438 private boolean isUnique(List<DeskriptorUmwelt> list) {
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
439 if (list.isEmpty()) {
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
440 return false;
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
441 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
442 String element = list.get(0).getUmwId();
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
443 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
444 if (!element.equals(list.get(i))) {
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
445 return false;
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
446 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
447 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
448 return true;
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
449 }
b8afbf6c1b5d Find the umw_id for probe objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 691
diff changeset
450
656
866d05db7a6a Added probe factory. This factory creates probe objects(and its childs) from
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
451 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)