annotate src/main/java/de/intevation/lada/exporter/laf/LafCreator.java @ 1028:1c41c7b8f7c2 schema-update

Updated server application to new database model. THIS IS STILL WIP!!!
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 08 Jul 2016 15:32:36 +0200
parents 092e673cbb8d
children d85562f07e3d
rev   line source
626
9e733f44d8b0 Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz
9e733f44d8b0 Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
2 * Software engineering by Intevation GmbH
9e733f44d8b0 Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
3 *
9e733f44d8b0 Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
4 * This file is Free Software under the GNU GPL (v>=3)
9e733f44d8b0 Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out
9e733f44d8b0 Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
6 * the documentation coming with IMIS-Labordaten-Application for details.
9e733f44d8b0 Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
7 */
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8 package de.intevation.lada.exporter.laf;
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10 import java.text.DateFormat;
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11 import java.text.SimpleDateFormat;
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12 import java.util.List;
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14 import javax.inject.Inject;
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
15 import javax.inject.Named;
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
16
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17 import de.intevation.lada.exporter.Creator;
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
18 import de.intevation.lada.model.land.KommentarM;
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
19 import de.intevation.lada.model.land.KommentarP;
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
20 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: 810
diff changeset
21 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: 810
diff changeset
22 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: 810
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: 810
diff changeset
24 import de.intevation.lada.model.land.ZusatzWert;
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
25 import de.intevation.lada.model.stammdaten.MessEinheit;
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
26 import de.intevation.lada.model.stammdaten.Messgroesse;
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
27 import de.intevation.lada.model.stammdaten.ProbenZusatz;
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
28 import de.intevation.lada.model.stammdaten.Probenart;
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
29 import de.intevation.lada.model.stammdaten.Ort;
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 import de.intevation.lada.util.annotation.RepositoryConfig;
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31 import de.intevation.lada.util.data.QueryBuilder;
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32 import de.intevation.lada.util.data.Repository;
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 import de.intevation.lada.util.data.RepositoryType;
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34 import de.intevation.lada.util.rest.Response;
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 /**
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 * This creator produces a LAF conform String containing all information about
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 * a single {@link LProbe} object including subobjects like
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39 * {@link LMessung}, {@link LMesswert}, {@link LKommentarP}...
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 *
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a>
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42 */
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43 @Named("lafcreator")
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 public class LafCreator
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45 implements Creator
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 {
626
9e733f44d8b0 Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
47 /**
9e733f44d8b0 Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
48 * The repository used to read data.
9e733f44d8b0 Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
49 */
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 @Inject
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51 @RepositoryConfig(type=RepositoryType.RO)
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52 private Repository repository;
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 /**
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 * Create the LAF conform String.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 *
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 * @param probeId The {@link LProbe} id.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58 */
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 @Override
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60 public String create(String probeId) {
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61 String lafProbe = "%PROBE%\n";
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 lafProbe += probeToLAF(probeId);
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63 return lafProbe;
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64 }
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 /**
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67 * Find the {@link LProbe} object and produce the LAF conform string.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68 * @param probeId The {@link LProbe} id.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
69 * @return LAF conform string.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70 */
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
71 private String probeToLAF(String probeId) {
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
72 Response found = repository.getById(Probe.class, Integer.valueOf(probeId), "land");
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
73 if (found.getData() == null) {
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
74 return null;
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
75 }
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
76 Probe aProbe = (Probe)found.getData();
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
77 String lafProbe = writeAttributes(aProbe);
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
78 return lafProbe;
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79 }
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
80
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
81 /**
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82 * Write the attributes and subobjects.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
83 *
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
84 * @param probe The {@link LProbeInfo} object.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
85 * @return LAF conform string.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
86 */
626
9e733f44d8b0 Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
87 @SuppressWarnings("unchecked")
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
88 private String writeAttributes(Probe probe) {
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
89 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm");
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
90 QueryBuilder<KommentarP> kommBuilder =
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
91 new QueryBuilder<KommentarP>(
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
92 repository.entityManager("land"), KommentarP.class);
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
93 kommBuilder.and("probeId", probe.getId());
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
94 Response kommentar = repository.filter(kommBuilder.getQuery(), "land");
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
95 List<KommentarP> kommentare = (List<KommentarP>)kommentar.getData();
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
96
675
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
97 QueryBuilder<Probenart> builder =
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
98 new QueryBuilder<Probenart>(
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
99 repository.entityManager("stamm"),
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
100 Probenart.class);
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
101 builder.and("id", probe.getProbenartId());
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
102 List<Probenart> probenarten =
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
103 (List<Probenart>)repository.filter(
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
104 builder.getQuery(),
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
105 "stamm").getData();
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
106 String probenart = probenarten.get(0).getProbenart();
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
107
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
108 QueryBuilder<ZusatzWert> zusatzBuilder =
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
109 new QueryBuilder<ZusatzWert>(
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
110 repository.entityManager("land"), ZusatzWert.class);
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
111 zusatzBuilder.and("probeId", probe.getId());
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
112 Response zusatz = repository.filter(zusatzBuilder.getQuery(), "land");
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
113 List<ZusatzWert> zusatzwerte = (List<ZusatzWert>)zusatz.getData();
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
114
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
115 String laf = "";
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
116 laf += probe.getDatenbasisId() == null ?
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
117 "": lafLine("DATENBASIS_S", probe.getDatenbasisId().toString());
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
118 //laf += probe.getNetzbetreiberId() == null ?
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
119 // "" : lafLine("NETZKENNUNG", probe.getNetzbetreiberId());
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
120 laf += probe.getMstId() == null ?
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
121 "" : lafLine("MESSSTELLE", probe.getMstId());
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
122 laf += lafLine("PROBE_ID", probe.getIdAlt());
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
123 laf += lafLine("HAUPTPROBENNUMMER", probe.getHauptprobenNr());
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
124 laf += probe.getBaId() == null ?
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
125 "" : lafLine("MESSPROGRAMM_S", "\"" + probe.getBaId() + "\"");
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
126 laf += probe.getProbenartId() == null ?
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
127 "" : lafLine("PROBENART",
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
128 "\"" + probenart + "\"");
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
129 laf += probe.getSolldatumBeginn() == null ?
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
130 "" : lafLine("SOLL_DATUM_UHRZEIT_A",
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
131 format.format(probe.getSolldatumBeginn()));
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
132 laf += probe.getSolldatumEnde() == null ?
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
133 "" : lafLine("SOLL_DATUM_UHRZEIT_E",
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
134 format.format(probe.getSolldatumEnde()));
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
135 laf += probe.getProbeentnahmeBeginn() == null ?
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
136 "" : lafLine("PROBENAHME_DATUM_UHRZEIT_A",
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
137 format.format(probe.getProbeentnahmeBeginn()));
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
138 laf += probe.getProbeentnahmeEnde() == null ?
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
139 "" : lafLine("PROBENAHME_DATUM_UHRZEIT_E",
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
140 format.format(probe.getProbeentnahmeEnde()));
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
141 laf += probe.getUmwId() == null ?
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
142 "" : lafLine("UMWELTBEREICH_S", probe.getUmwId());
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
143 laf += probe.getMedia() == null ?
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
144 "" : lafLine("MEDIUM", "\"" + probe.getMedia() + "\"");
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
145 laf += probe.getMediaDesk() == null ?
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
146 "" : lafLine("DESKRIPTOREN", "\"" + probe.getMediaDesk() + "\"");
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
147 laf += probe.getTest() == Boolean.TRUE ?
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
148 lafLine("TESTDATEN", "1") : lafLine("TESTDATEN", "0");
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
149 for (ZusatzWert zw : zusatzwerte) {
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
150 laf += writeZusatzwert(zw);
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
151 }
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
152 for (KommentarP kp : kommentare) {
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
153 laf += writeKommentar(kp);
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
154 }
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
155 laf += writeMessung(probe);
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
156 laf += writeOrt(probe);
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
157 return laf;
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
158 }
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
159
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
160 /**
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
161 * Write {@link LZusatzWert} attributes.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
162 *
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
163 * @param zw The {@link LZusatzWert}.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
164 * @return Single LAF line.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
165 */
626
9e733f44d8b0 Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
166 @SuppressWarnings("unchecked")
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
167 private String writeZusatzwert(ZusatzWert zw) {
675
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
168 QueryBuilder<ProbenZusatz> builder =
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
169 new QueryBuilder<ProbenZusatz>(
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
170 repository.entityManager("stamm"),
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
171 ProbenZusatz.class);
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
172 builder.and("id", zw.getPzsId());
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
173 List<ProbenZusatz> zusatz =
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
174 (List<ProbenZusatz>)repository.filter(
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
175 builder.getQuery(),
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
176 "stamm").getData();
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
177
675
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
178 String value = "\"" + zusatz.get(0).getBeschreibung() + "\"";
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
179 value += " " + zw.getMesswertPzs();
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
180 value += " " + zusatz.get(0).getMessEinheitId();
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
181 value += " " + zw.getMessfehler();
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
182 return lafLine("PZB_S", value);
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
183 }
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
184
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
185 /**
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
186 * Write {@link LOrt} attributes.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
187 *
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
188 * @param probe The {@link LProbeInfo} object.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
189 * @return LAF conform string
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
190 */
626
9e733f44d8b0 Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
191 @SuppressWarnings("unchecked")
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
192 private String writeOrt(Probe probe) {
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
193 QueryBuilder<Ortszuordnung> builder =
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
194 new QueryBuilder<Ortszuordnung>(
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
195 repository.entityManager("land"),
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
196 Ortszuordnung.class);
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
197 builder.and("probeId", probe.getId());
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
198 Response objects = repository.filter(builder.getQuery(), "land");
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
199 List<Ortszuordnung> orte =
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
200 (List<Ortszuordnung>)objects.getData();
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
201
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
202 String laf = "";
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
203 for(Ortszuordnung o : orte) {
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
204 laf += "%ORT%\n";
810
092e673cbb8d Added and updated model, services, etc for to fit the new db schema.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 683
diff changeset
205 QueryBuilder<Ort> oBuilder =
092e673cbb8d Added and updated model, services, etc for to fit the new db schema.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 683
diff changeset
206 new QueryBuilder<Ort>(
675
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
207 repository.entityManager("stamm"),
810
092e673cbb8d Added and updated model, services, etc for to fit the new db schema.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 683
diff changeset
208 Ort.class);
092e673cbb8d Added and updated model, services, etc for to fit the new db schema.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 683
diff changeset
209 oBuilder.and("id", o.getOrtId());
092e673cbb8d Added and updated model, services, etc for to fit the new db schema.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 683
diff changeset
210 List<Ort> sOrte=
092e673cbb8d Added and updated model, services, etc for to fit the new db schema.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 683
diff changeset
211 (List<Ort>)repository.filter(
679
618d1b2f396f Fixed LAF exporter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 675
diff changeset
212 oBuilder.getQuery(),
675
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
213 "stamm").getData();
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
214
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
215 laf += lafLine("ORT_CODE",
810
092e673cbb8d Added and updated model, services, etc for to fit the new db schema.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 683
diff changeset
216 "\"" + sOrte.get(0).getAnlageId() + "\"");
092e673cbb8d Added and updated model, services, etc for to fit the new db schema.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 683
diff changeset
217 laf += lafLine("ORT_TYP", "\"" + o.getOrtszuordnungTyp() + "\"");
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
218 laf += o.getOrtszusatztext() == null ? "":
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
219 lafLine("ORT_ZUSATZTEXT", "\"" + o.getOrtszusatztext() + "\"");
675
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
220 laf += lafLine("ORT_LAND_S", String.valueOf(sOrte.get(0).getStaatId()));
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
221 String koord = "";
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
222 koord += "05 ";
675
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
223 koord += sOrte.get(0).getLongitude() + " ";
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
224 koord += sOrte.get(0).getLatitude();
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
225 //TODO: use table koordinatenart and koord*extern!
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
226 laf += lafLine("ORT_KOORDINATEN_S", koord);
810
092e673cbb8d Added and updated model, services, etc for to fit the new db schema.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 683
diff changeset
227 laf += lafLine("ORT_GEMEINDESCHLUESSEL", sOrte.get(0).getOrtId());
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
228 }
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
229 return laf;
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
230 }
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
231
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
232 /**
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
233 * Write {@link LKommentarP} attributes.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
234 *
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
235 * @param kp The {@link LKommentarP} object.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
236 * @return Single LAF line.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
237 */
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
238 private String writeKommentar(KommentarP kp) {
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
239 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm");
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
240 String value = "\"" + kp.getMstId() + "\" " +
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
241 format.format(kp.getDatum()) + " " +
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
242 "\"" + kp.getText() + "\"";
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
243 return lafLine("PROBENKOMMENTAR", value);
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
244 }
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
245
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
246 /**
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
247 * Write {@link LMessung} attributes.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
248 *
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
249 * @param probe The {@link LProbeInfo} object.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
250 * @return LAF conform string.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
251 */
626
9e733f44d8b0 Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
252 @SuppressWarnings("unchecked")
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
253 private String writeMessung(Probe probe) {
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
254 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm");
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
255 // Get all messungen
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
256 QueryBuilder<Messung> builder =
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
257 new QueryBuilder<Messung>(
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
258 repository.entityManager("land"),
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
259 Messung.class);
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
260 builder.and("probeId", probe.getId());
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
261 Response objects = repository.filter(builder.getQuery(), "land");
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
262 List<Messung> mess = (List<Messung>)objects.getData();
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
263
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
264 String laf = "";
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
265 for(Messung m : mess) {
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
266 laf += "%MESSUNG%\n";
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
267 QueryBuilder<Messwert> wertBuilder =
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
268 new QueryBuilder<Messwert>(
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
269 repository.entityManager("land"), Messwert.class);
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
270 wertBuilder.and("messungsId", m.getId());
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
271 Response messw = repository.filter(wertBuilder.getQuery(), "land");
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
272 List<Messwert> werte = (List<Messwert>)messw.getData();
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
273 QueryBuilder<KommentarM> kommBuilder =
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
274 new QueryBuilder<KommentarM>(
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
275 repository.entityManager("land"), KommentarM.class);
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
276 kommBuilder.and("messungsId", m.getId());
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
277 Response kommentar = repository.filter(kommBuilder.getQuery(), "land");
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
278 List<KommentarM> kommentare = (List<KommentarM>)kommentar.getData();
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
279 laf += lafLine("MESSUNGS_ID", m.getId().toString());
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
280 laf += lafLine("NEBENPROBENNUMMER", m.getNebenprobenNr());
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
281 laf += m.getMesszeitpunkt() == null ?
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
282 "" : lafLine(
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
283 "MESS_DATUM_UHRZEIT",
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
284 format.format(m.getMesszeitpunkt()));
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
285 laf += m.getMessdauer() == null ?
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
286 "" : lafLine("MESSZEIT_SEKUNDEN", m.getMessdauer().toString());
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
287 laf += m.getMmtId() == null ?
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
288 "" : lafLine("MESSMETHODE_S", m.getMmtId());
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
289 for (Messwert mw : werte) {
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
290 laf += writeMesswert(mw);
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
291 }
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
292 for (KommentarM mk: kommentare) {
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
293 laf += writeKommentar(mk);
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
294 }
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
295 }
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
296 return laf;
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
297 }
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
298
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
299 /**
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
300 * Write {@link LKommentarM} attributes.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
301 * @param mk The {@link LKommentarM} object.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
302 * @return Single LAF line.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
303 */
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
304 private String writeKommentar(KommentarM mk) {
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
305 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm");
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
306 String value = "\"" + mk.getMstId() + "\" " +
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
307 format.format(mk.getDatum()) + " " +
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
308 "\"" + mk.getText() + "\"";
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
309 return lafLine("KOMMENTAR", value);
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
310 }
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
311
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
312 /**
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
313 * Write {@link LMesswert} attributes.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
314 * @param mw The {@link LMesswert} object.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
315 * @return Single LAF line.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
316 */
626
9e733f44d8b0 Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
317 @SuppressWarnings("unchecked")
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 810
diff changeset
318 private String writeMesswert(Messwert mw) {
675
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
319 QueryBuilder<Messgroesse> builder =
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
320 new QueryBuilder<Messgroesse>(
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
321 repository.entityManager("stamm"),
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
322 Messgroesse.class);
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
323 builder.and("id", mw.getMessgroesseId());
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
324 List<Messgroesse> groessen =
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
325 (List<Messgroesse>)repository.filter(
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
326 builder.getQuery(),
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
327 "stamm").getData();
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
328
675
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
329 QueryBuilder<MessEinheit> eBuilder =
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
330 new QueryBuilder<MessEinheit>(
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
331 repository.entityManager("stamm"),
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
332 MessEinheit.class);
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
333 eBuilder.and("id", mw.getMehId());
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
334 List<MessEinheit> einheiten =
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
335 (List<MessEinheit>)repository.filter(
679
618d1b2f396f Fixed LAF exporter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 675
diff changeset
336 eBuilder.getQuery(),
675
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
337 "stamm").getData();
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
338
675
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
339 String value = "\"" + groessen.get(0).getMessgroesse() + "\"";
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
340 if (mw.getGrenzwertueberschreitung() != null &&
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
341 !mw.getGrenzwertueberschreitung()) {
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
342 value += " <";
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
343 }
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
344 else {
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
345 value += " ";
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
346 }
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
347 value += mw.getMesswert();
675
331cd2bb3109 Removed plain sql statements.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 626
diff changeset
348 value += " \"" + einheiten.get(0).getEinheit() + "\"";
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
349 value += mw.getMessfehler() == null ? " NULL" : " " + mw.getMessfehler();
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
350 value += mw.getNwgZuMesswert() == null ? " NULL" : " " + mw.getNwgZuMesswert();
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
351 value += mw.getGrenzwertueberschreitung() == null ? " N" :
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
352 mw.getGrenzwertueberschreitung() ? " Y" : " N";
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
353 return lafLine("MESSWERT", value);
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
354 }
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
355
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
356 /**
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
357 * Write a single LAF conform line from key and value.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
358 *
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
359 * @param key The key.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
360 * @param value The value.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
361 * @return LAF conform line.
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
362 */
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
363 private String lafLine(String key, String value) {
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
364 for (int i = key.length(); i < 30; i++) {
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
365 key += " ";
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
366 }
620
7d9f5161b7ad Removed '\r' from laf exporter.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 619
diff changeset
367 return key + value + "\n";
609
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
368 }
093bfdcdb09c Added exporter impl. for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
369 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)