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 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)