Mercurial > lada > lada-server
comparison src/main/java/de/intevation/lada/data/exporter/LAFCreator.java @ 366:567ce7697fc7 0.5
Code documentation.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Tue, 10 Sep 2013 15:55:54 +0200 |
parents | c0357bd00666 |
children | f3d0894d9bfc |
comparison
equal
deleted
inserted
replaced
365:fab80595ed55 | 366:567ce7697fc7 |
---|---|
25 import de.intevation.lada.model.SMessgroesse; | 25 import de.intevation.lada.model.SMessgroesse; |
26 import de.intevation.lada.model.SProbenZusatz; | 26 import de.intevation.lada.model.SProbenZusatz; |
27 import de.intevation.lada.model.SProbenart; | 27 import de.intevation.lada.model.SProbenart; |
28 import de.intevation.lada.rest.Response; | 28 import de.intevation.lada.rest.Response; |
29 | 29 |
30 /** | |
31 * This creator produces a LAF conform String containing all information about | |
32 * a single {@link LProbe} object including subobjects like | |
33 * {@link LMessung}, {@link LMesswert}, {@link LKommentarP}... | |
34 * | |
35 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> | |
36 */ | |
30 @Named("lafcreator") | 37 @Named("lafcreator") |
31 public class LAFCreator | 38 public class LAFCreator |
32 implements Creator | 39 implements Creator |
33 { | 40 { |
34 | 41 |
62 | 69 |
63 @Inject | 70 @Inject |
64 @Named("readonlyrepository") | 71 @Named("readonlyrepository") |
65 private Repository readonlyRepo; | 72 private Repository readonlyRepo; |
66 | 73 |
74 /** | |
75 * Create the LAF conform String. | |
76 * | |
77 * @param probeId The {@link LProbe} id. | |
78 */ | |
67 @Override | 79 @Override |
68 public String create(String probeId) { | 80 public String create(String probeId) { |
69 String lafProbe = "%PROBE%\n"; | 81 String lafProbe = "%PROBE%\n"; |
70 lafProbe += probeToLAF(probeId); | 82 lafProbe += probeToLAF(probeId); |
71 return lafProbe; | 83 return lafProbe; |
72 } | 84 } |
73 | 85 |
86 /** | |
87 * Find the {@link LProbe} object and produce the LAF conform string. | |
88 * @param probeId The {@link LProbe} id. | |
89 * @return LAF conform string. | |
90 */ | |
74 private String probeToLAF(String probeId) { | 91 private String probeToLAF(String probeId) { |
75 Response found = this.proben.findById(LProbe.class, probeId); | 92 Response found = this.proben.findById(LProbe.class, probeId); |
76 if (found.getData() == null) { | 93 if (found.getData() == null) { |
77 return null; | 94 return null; |
78 } | 95 } |
80 LProbeInfo probe = aProbe.get(0); | 97 LProbeInfo probe = aProbe.get(0); |
81 String lafProbe = writeAttributes(probe); | 98 String lafProbe = writeAttributes(probe); |
82 return lafProbe; | 99 return lafProbe; |
83 } | 100 } |
84 | 101 |
102 /** | |
103 * Write the attributes and subobjects. | |
104 * | |
105 * @param probe The {@link LProbeInfo} object. | |
106 * @return LAF conform string. | |
107 */ | |
85 private String writeAttributes(LProbeInfo probe) { | 108 private String writeAttributes(LProbeInfo probe) { |
86 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); | 109 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); |
87 QueryBuilder<LKommentarP> kommBuilder = | 110 QueryBuilder<LKommentarP> kommBuilder = |
88 new QueryBuilder<LKommentarP>( | 111 new QueryBuilder<LKommentarP>( |
89 pkommentarRepo.getEntityManager(), LKommentarP.class); | 112 pkommentarRepo.getEntityManager(), LKommentarP.class); |
148 laf += writeMessung(probe); | 171 laf += writeMessung(probe); |
149 laf += writeOrt(probe); | 172 laf += writeOrt(probe); |
150 return laf; | 173 return laf; |
151 } | 174 } |
152 | 175 |
176 /** | |
177 * Write {@link LZusatzWert} attributes. | |
178 * | |
179 * @param zw The {@link LZusatzWert}. | |
180 * @return Single LAF line. | |
181 */ | |
153 private String writeZusatzwert(LZusatzWert zw) { | 182 private String writeZusatzwert(LZusatzWert zw) { |
154 QueryBuilder<SProbenZusatz> builder = | 183 QueryBuilder<SProbenZusatz> builder = |
155 new QueryBuilder<SProbenZusatz>( | 184 new QueryBuilder<SProbenZusatz>( |
156 readonlyRepo.getEntityManager(), SProbenZusatz.class); | 185 readonlyRepo.getEntityManager(), SProbenZusatz.class); |
157 builder.and("pzsId", zw.getPzsId()); | 186 builder.and("pzsId", zw.getPzsId()); |
163 value += " " + zusaetze.get(0).getMehId(); | 192 value += " " + zusaetze.get(0).getMehId(); |
164 value += " " + zw.getMessfehler(); | 193 value += " " + zw.getMessfehler(); |
165 return lafLine("PZB_S", value); | 194 return lafLine("PZB_S", value); |
166 } | 195 } |
167 | 196 |
197 /** | |
198 * Write {@link LOrt} attributes. | |
199 * | |
200 * @param probe The {@link LProbeInfo} object. | |
201 * @return LAF conform string | |
202 */ | |
168 private String writeOrt(LProbeInfo probe) { | 203 private String writeOrt(LProbeInfo probe) { |
169 QueryBuilder<LOrt> builder = | 204 QueryBuilder<LOrt> builder = |
170 new QueryBuilder<LOrt>( | 205 new QueryBuilder<LOrt>( |
171 ortRepo.getEntityManager(), | 206 ortRepo.getEntityManager(), |
172 LOrt.class); | 207 LOrt.class); |
201 laf += lafLine("ORT_GEMEINDESCHLUESSEL", ort.get(0).getGemId()); | 236 laf += lafLine("ORT_GEMEINDESCHLUESSEL", ort.get(0).getGemId()); |
202 } | 237 } |
203 return laf; | 238 return laf; |
204 } | 239 } |
205 | 240 |
241 /** | |
242 * Write {@link LKommentarP} attributes. | |
243 * | |
244 * @param kp The {@link LKommentarP} object. | |
245 * @return Single LAF line. | |
246 */ | |
206 private String writeKommentar(LKommentarP kp) { | 247 private String writeKommentar(LKommentarP kp) { |
207 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); | 248 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); |
208 String value = "\"" + kp.getErzeuger() + "\" " + | 249 String value = "\"" + kp.getErzeuger() + "\" " + |
209 format.format(kp.getKDatum()) + " " + | 250 format.format(kp.getKDatum()) + " " + |
210 "\"" + kp.getKText() + "\""; | 251 "\"" + kp.getKText() + "\""; |
211 return lafLine("PROBENKOMMENTAR", value); | 252 return lafLine("PROBENKOMMENTAR", value); |
212 } | 253 } |
213 | 254 |
255 /** | |
256 * Write {@link LMessung} attributes. | |
257 * | |
258 * @param probe The {@link LProbeInfo} object. | |
259 * @return LAF conform string. | |
260 */ | |
214 private String writeMessung(LProbeInfo probe) { | 261 private String writeMessung(LProbeInfo probe) { |
215 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); | 262 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); |
216 // Get all messungen | 263 // Get all messungen |
217 QueryBuilder<LMessung> builder = | 264 QueryBuilder<LMessung> builder = |
218 new QueryBuilder<LMessung>( | 265 new QueryBuilder<LMessung>( |
255 } | 302 } |
256 } | 303 } |
257 return laf; | 304 return laf; |
258 } | 305 } |
259 | 306 |
307 /** | |
308 * Write {@link LKommentarM} attributes. | |
309 * @param mk The {@link LKommentarM} object. | |
310 * @return Single LAF line. | |
311 */ | |
260 private String writeKommentar(LKommentarM mk) { | 312 private String writeKommentar(LKommentarM mk) { |
261 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); | 313 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); |
262 String value = "\"" + mk.getErzeuger() + "\" " + | 314 String value = "\"" + mk.getErzeuger() + "\" " + |
263 format.format(mk.getKDatum()) + " " + | 315 format.format(mk.getKDatum()) + " " + |
264 "\"" + mk.getKText() + "\""; | 316 "\"" + mk.getKText() + "\""; |
265 return lafLine("KOMMENTAR", value); | 317 return lafLine("KOMMENTAR", value); |
266 } | 318 } |
267 | 319 |
320 /** | |
321 * Write {@link LMesswert} attributes. | |
322 * @param mw The {@link LMesswert} object. | |
323 * @return Single LAF line. | |
324 */ | |
268 private String writeMesswert(LMesswert mw) { | 325 private String writeMesswert(LMesswert mw) { |
269 QueryBuilder<SMessgroesse> builder = | 326 QueryBuilder<SMessgroesse> builder = |
270 new QueryBuilder<SMessgroesse>( | 327 new QueryBuilder<SMessgroesse>( |
271 readonlyRepo.getEntityManager(), SMessgroesse.class); | 328 readonlyRepo.getEntityManager(), SMessgroesse.class); |
272 builder.and("messgroesseId", mw.getMessgroesseId()); | 329 builder.and("messgroesseId", mw.getMessgroesseId()); |
293 value += mw.getGrenzwertueberschreitung() == null ? " N" : | 350 value += mw.getGrenzwertueberschreitung() == null ? " N" : |
294 mw.getGrenzwertueberschreitung() ? " Y" : " N"; | 351 mw.getGrenzwertueberschreitung() ? " Y" : " N"; |
295 return lafLine("MESSWERT", value); | 352 return lafLine("MESSWERT", value); |
296 } | 353 } |
297 | 354 |
355 /** | |
356 * Write a single LAF conform line from key and value. | |
357 * | |
358 * @param key The key. | |
359 * @param value The value. | |
360 * @return LAF conform line. | |
361 */ | |
298 private String lafLine(String key, String value) { | 362 private String lafLine(String key, String value) { |
299 for (int i = key.length(); i < 30; i++) { | 363 for (int i = key.length(); i < 30; i++) { |
300 key += " "; | 364 key += " "; |
301 } | 365 } |
302 return key + value + "\n"; | 366 return key + value + "\n"; |