Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/exporter/json/JsonExporter.java @ 1043:1b9516c60a5a schema-update
Added json export.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Mon, 05 Sep 2016 10:19:23 +0200 |
parents | |
children | 35e15ff43a3b |
rev | line source |
---|---|
1043
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
3 * |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU GPL (v>=3) |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
6 * the documentation coming with IMIS-Labordaten-Application for details. |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
7 */ |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
8 package de.intevation.lada.exporter.json; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
9 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
10 import java.io.ByteArrayInputStream; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
11 import java.io.IOException; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
12 import java.io.InputStream; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
13 import java.util.List; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
14 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
15 import javax.inject.Inject; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
16 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
17 import org.apache.log4j.Logger; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
18 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
19 import com.fasterxml.jackson.databind.JsonNode; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
20 import com.fasterxml.jackson.databind.ObjectMapper; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
21 import com.fasterxml.jackson.databind.node.JsonNodeFactory; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
22 import com.fasterxml.jackson.databind.node.ObjectNode; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
23 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
24 import de.intevation.lada.exporter.ExportConfig; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
25 import de.intevation.lada.exporter.ExportFormat; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
26 import de.intevation.lada.exporter.Exporter; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
27 import de.intevation.lada.model.land.KommentarM; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
28 import de.intevation.lada.model.land.KommentarP; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
29 import de.intevation.lada.model.land.Messung; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
30 import de.intevation.lada.model.land.Messwert; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
31 import de.intevation.lada.model.land.Ortszuordnung; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
32 import de.intevation.lada.model.land.Probe; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
33 import de.intevation.lada.model.land.StatusProtokoll; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
34 import de.intevation.lada.model.land.ZusatzWert; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
35 import de.intevation.lada.model.stammdaten.Deskriptoren; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
36 import de.intevation.lada.model.stammdaten.MessStelle; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
37 import de.intevation.lada.model.stammdaten.Ort; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
38 import de.intevation.lada.model.stammdaten.StatusKombi; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
39 import de.intevation.lada.util.annotation.RepositoryConfig; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
40 import de.intevation.lada.util.auth.UserInfo; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
41 import de.intevation.lada.util.data.QueryBuilder; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
42 import de.intevation.lada.util.data.Repository; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
43 import de.intevation.lada.util.data.RepositoryType; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
44 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
45 @ExportConfig(format=ExportFormat.JSON) |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
46 public class JsonExporter implements Exporter { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
47 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
48 @Inject private Logger logger; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
49 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
50 @Inject |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
51 @RepositoryConfig(type=RepositoryType.RO) |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
52 private Repository repository; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
53 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
54 @Override |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
55 public InputStream export(List<Integer> proben, UserInfo userInfo) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
56 logger.debug("export json"); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
57 String json = ""; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
58 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
59 //Create json. |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
60 json = createJsonString(proben, userInfo); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
61 if (json == null) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
62 return null; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
63 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
64 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
65 InputStream in = new ByteArrayInputStream(json.getBytes()); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
66 try { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
67 in.close(); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
68 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
69 catch (IOException e) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
70 logger.debug("Error while closing Stream."); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
71 return null; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
72 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
73 return in; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
74 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
75 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
76 private String createJsonString(List<Integer> probeIds, UserInfo userInfo) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
77 QueryBuilder<Probe> builder = new QueryBuilder<Probe>( |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
78 repository.entityManager("land"), |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
79 Probe.class |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
80 ); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
81 for (Integer id : probeIds) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
82 builder.or("id", id); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
83 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
84 List<Probe> proben = repository.filterPlain(builder.getQuery(), "land"); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
85 final ObjectMapper mapper = new ObjectMapper(); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
86 try { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
87 String tmp = mapper.writeValueAsString(proben); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
88 JsonNode nodes = mapper.readTree(tmp); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
89 addSubObjects(nodes); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
90 return mapper.writeValueAsString(nodes); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
91 } catch (IOException e) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
92 logger.debug("Error parsing object structure."); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
93 return null; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
94 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
95 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
96 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
97 private JsonNode addSubObjects(JsonNode proben) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
98 for (int i = 0; i < proben.size(); i++) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
99 addMessungen(proben.get(i)); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
100 addKommentare(proben.get(i)); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
101 addZusatzwerte(proben.get(i)); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
102 addDeskriptoren(proben.get(i)); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
103 addOrtszuordung(proben.get(i)); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
104 addMessstelle(proben.get(i)); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
105 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
106 return proben; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
107 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
108 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
109 private void addMessstelle(JsonNode node) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
110 MessStelle messstelle = repository.getByIdPlain( |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
111 MessStelle.class, |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
112 node.get("mstId").asText(), |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
113 "stamm"); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
114 final ObjectMapper mapper = new ObjectMapper(); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
115 try { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
116 String tmp = mapper.writeValueAsString(messstelle); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
117 JsonNode nodes = mapper.readTree(tmp); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
118 ((ObjectNode)node).set("messstelle", nodes); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
119 } catch (IOException e) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
120 logger.debug("Could not export Messstelle for Probe " |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
121 + node.get("idAlt").asText()); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
122 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
123 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
124 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
125 private void addMessungen(JsonNode probe) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
126 QueryBuilder<Messung> builder = new QueryBuilder<Messung>( |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
127 repository.entityManager("land"), |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
128 Messung.class |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
129 ); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
130 builder.and("probeId", probe.get("id").asInt()); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
131 List<Messung> messungen = repository.filterPlain(builder.getQuery(), "land"); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
132 final ObjectMapper mapper = new ObjectMapper(); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
133 try { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
134 String tmp = mapper.writeValueAsString(messungen); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
135 JsonNode nodes = mapper.readTree(tmp); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
136 for (int i = 0; i < nodes.size(); i++) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
137 addMesswerte(nodes.get(i)); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
138 addMessungsKommentare(nodes.get(i)); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
139 addStatusProtokoll(nodes.get(i)); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
140 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
141 ((ObjectNode)probe).set("messungen", nodes); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
142 } catch (IOException e) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
143 logger.debug("Could not export Messungen for Probe " |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
144 + probe.get("idAlt").asText()); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
145 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
146 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
147 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
148 private void addKommentare(JsonNode probe) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
149 QueryBuilder<KommentarP> builder = new QueryBuilder<KommentarP>( |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
150 repository.entityManager("land"), |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
151 KommentarP.class |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
152 ); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
153 builder.and("probeId", probe.get("id").asInt()); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
154 List<KommentarP> kommentare = |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
155 repository.filterPlain(builder.getQuery(), "land"); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
156 final ObjectMapper mapper = new ObjectMapper(); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
157 try { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
158 String tmp = mapper.writeValueAsString(kommentare); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
159 JsonNode nodes = mapper.readTree(tmp); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
160 ((ObjectNode)probe).set("kommentare", nodes); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
161 } catch (IOException e) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
162 logger.debug("Could not export Kommentare for Probe " |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
163 + probe.get("idAlt").asText()); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
164 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
165 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
166 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
167 private void addZusatzwerte(JsonNode probe) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
168 QueryBuilder<ZusatzWert> builder = new QueryBuilder<ZusatzWert>( |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
169 repository.entityManager("land"), |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
170 ZusatzWert.class |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
171 ); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
172 builder.and("probeId", probe.get("id").asInt()); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
173 List<ZusatzWert> zusatzwerte= |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
174 repository.filterPlain(builder.getQuery(), "land"); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
175 final ObjectMapper mapper = new ObjectMapper(); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
176 try { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
177 String tmp = mapper.writeValueAsString(zusatzwerte); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
178 JsonNode nodes = mapper.readTree(tmp); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
179 ((ObjectNode)probe).set("zusatzwerte", nodes); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
180 } catch (IOException e) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
181 logger.debug("Could not export Zusatzwerte for Probe " |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
182 + probe.get("idAlt").asText()); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
183 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
184 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
185 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
186 private void addDeskriptoren(JsonNode probe) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
187 String desk = probe.get("mediaDesk").asText(); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
188 String[] parts = desk.split(" "); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
189 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
190 QueryBuilder<Deskriptoren> builder = new QueryBuilder<Deskriptoren>( |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
191 repository.entityManager("stamm"), |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
192 Deskriptoren.class |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
193 ); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
194 int vorgaenger = 0; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
195 ObjectNode node = new ObjectNode(JsonNodeFactory.instance); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
196 for (int i = 0; i < parts.length - 1; i++) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
197 logger.debug("ebene: " + i); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
198 logger.debug("sn: " + Integer.parseInt(parts[i+1])); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
199 String beschreibung = ""; |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
200 if (Integer.parseInt(parts[i+1]) != 0) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
201 builder.and("ebene", i); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
202 builder.and("sn", Integer.parseInt(parts[i+1])); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
203 logger.debug(vorgaenger); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
204 if (vorgaenger != 0) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
205 builder.and("vorgaenger", vorgaenger); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
206 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
207 List<Deskriptoren> found = repository.filterPlain(builder.getQuery(), "stamm"); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
208 if (found.size() > 0) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
209 beschreibung = found.get(0).getBeschreibung(); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
210 vorgaenger = found.get(0).getId(); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
211 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
212 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
213 node.put("S" + i, beschreibung); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
214 builder = builder.getEmptyBuilder(); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
215 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
216 ((ObjectNode)probe).set("deskriptoren", node); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
217 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
218 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
219 private void addMesswerte(JsonNode node) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
220 QueryBuilder<Messwert> builder = new QueryBuilder<Messwert>( |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
221 repository.entityManager("land"), |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
222 Messwert.class |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
223 ); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
224 builder.and("messungsId", node.get("id").asInt()); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
225 List<Messwert> messwerte = |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
226 repository.filterPlain(builder.getQuery(), "land"); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
227 final ObjectMapper mapper = new ObjectMapper(); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
228 try { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
229 String tmp = mapper.writeValueAsString(messwerte); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
230 JsonNode nodes = mapper.readTree(tmp); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
231 ((ObjectNode)node).set("messwerte", nodes); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
232 } catch (IOException e) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
233 logger.debug("Could not export Messwerte for Messung " |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
234 + node.get("nebenprobenNr").asText()); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
235 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
236 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
237 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
238 private void addMessungsKommentare(JsonNode node) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
239 QueryBuilder<KommentarM> builder = new QueryBuilder<KommentarM>( |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
240 repository.entityManager("land"), |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
241 KommentarM.class |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
242 ); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
243 builder.and("messungsId", node.get("id").asInt()); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
244 List<KommentarM> kommentare = |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
245 repository.filterPlain(builder.getQuery(), "land"); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
246 final ObjectMapper mapper = new ObjectMapper(); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
247 try { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
248 String tmp = mapper.writeValueAsString(kommentare); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
249 JsonNode nodes = mapper.readTree(tmp); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
250 ((ObjectNode)node).set("kommentare", nodes); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
251 } catch (IOException e) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
252 logger.debug("Could not export Kommentare for Messung " |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
253 + node.get("nebenprobenNr").asText()); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
254 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
255 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
256 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
257 private void addStatusProtokoll(JsonNode node) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
258 QueryBuilder<StatusProtokoll> builder = new QueryBuilder<StatusProtokoll>( |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
259 repository.entityManager("land"), |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
260 StatusProtokoll.class |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
261 ); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
262 builder.and("messungsId", node.get("id").asInt()); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
263 List<StatusProtokoll> status = |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
264 repository.filterPlain(builder.getQuery(), "land"); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
265 final ObjectMapper mapper = new ObjectMapper(); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
266 try { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
267 String tmp = mapper.writeValueAsString(status); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
268 JsonNode nodes = mapper.readTree(tmp); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
269 for (int i = 0; i < nodes.size(); i++) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
270 StatusKombi kombi = repository.getByIdPlain( |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
271 StatusKombi.class, |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
272 nodes.get(i).get("statusKombi").asInt(), |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
273 "stamm"); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
274 ((ObjectNode)nodes.get(i)).put( |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
275 "statusStufe", |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
276 kombi.getStatusStufe().getStufe()); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
277 ((ObjectNode)nodes.get(i)).put( |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
278 "statusWert", |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
279 kombi.getStatusWert().getWert()); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
280 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
281 ((ObjectNode)node).set("statusprotokoll", nodes); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
282 } catch (IOException e) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
283 logger.debug("Could not export Statusprotokoll for Messung " |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
284 + node.get("nebenprobenNr").asText()); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
285 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
286 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
287 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
288 private void addOrtszuordung(JsonNode node) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
289 QueryBuilder<Ortszuordnung> builder = new QueryBuilder<Ortszuordnung>( |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
290 repository.entityManager("land"), |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
291 Ortszuordnung.class |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
292 ); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
293 builder.and("probeId", node.get("id").asInt()); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
294 List<Ortszuordnung> ortszuordnung = |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
295 repository.filterPlain(builder.getQuery(), "land"); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
296 final ObjectMapper mapper = new ObjectMapper(); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
297 try { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
298 String tmp = mapper.writeValueAsString(ortszuordnung); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
299 JsonNode nodes = mapper.readTree(tmp); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
300 for (int i = 0; i < nodes.size(); i++) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
301 addOrt(nodes.get(i)); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
302 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
303 ((ObjectNode)node).set("ortszuordnung", nodes); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
304 } catch (IOException e) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
305 logger.debug("Could not export Ortszuordnugen for Probe " |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
306 + node.get("idAlt").asText()); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
307 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
308 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
309 |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
310 private void addOrt(JsonNode node) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
311 QueryBuilder<Ort> builder = new QueryBuilder<Ort>( |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
312 repository.entityManager("stamm"), |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
313 Ort.class |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
314 ); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
315 builder.and("id", node.get("ortId").asInt()); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
316 List<Ort> ort= |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
317 repository.filterPlain(builder.getQuery(), "stamm"); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
318 final ObjectMapper mapper = new ObjectMapper(); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
319 try { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
320 String tmp = mapper.writeValueAsString(ort); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
321 JsonNode nodes = mapper.readTree(tmp); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
322 ((ObjectNode)node).set("ort", nodes); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
323 } catch (IOException e) { |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
324 logger.debug("Could not export Ort for Ortszuordnung " |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
325 + node.get("id").asText()); |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
326 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
327 } |
1b9516c60a5a
Added json export.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
328 } |