Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/data/importer/AttributeMapper.java @ 321:5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Fri, 23 Aug 2013 11:35:24 +0200 |
parents | 821557a17e5e |
children | 5d11428e6a09 |
rev | line source |
---|---|
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.lada.data.importer; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
2 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
3 import java.text.DateFormat; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
4 import java.text.ParseException; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
5 import java.text.SimpleDateFormat; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
6 import java.util.Date; |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
7 import java.util.List; |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
8 import java.util.regex.Matcher; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
9 import java.util.regex.Pattern; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
11 import javax.ejb.Stateless; |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 import javax.inject.Inject; |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
13 import javax.inject.Named; |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 import javax.persistence.EntityManager; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
16 import de.intevation.lada.data.Repository; |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 import de.intevation.lada.model.LKommentarM; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
18 import de.intevation.lada.model.LKommentarP; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 import de.intevation.lada.model.LMessung; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 import de.intevation.lada.model.LMessungId; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 import de.intevation.lada.model.LMesswert; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
22 import de.intevation.lada.model.LOrt; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
23 import de.intevation.lada.model.LProbe; |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
24 import de.intevation.lada.model.SMessEinheit; |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
25 import de.intevation.lada.model.SMessgroesse; |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
26 import de.intevation.lada.rest.Response; |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
28 @Stateless |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 public class AttributeMapper |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
31 @Inject |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
32 private EntityManager em; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
33 |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
34 @Inject |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
35 @Named("readonlyrepository") |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
36 private Repository sRepository; |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
37 |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 public LProbe addAttribute(String key, Object value, LProbe probe) { |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
39 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 if ("datenbasis_s".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 Integer v = Integer.valueOf(value.toString()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 probe.setDatenbasisId(v); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 else if ("probe_id".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 probe.setProbeId(value.toString()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 else if ("hauptprobennummer".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 probe.setHauptprobenNr(value.toString()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 else if ("mpr_id".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 Integer v = Integer.valueOf(value.toString()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 probe.setMprId(v); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 } |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
54 else if ("netzkennung".equals(key)) { |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
55 probe.setNetzbetreiberId(value.toString()); |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
56 } |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
57 else if ("messprogramm_land".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
58 probe.setMplId(value.toString()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
59 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
60 else if ("messstelle".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
61 probe.setMstId(value.toString()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
62 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
63 else if ("betriebsart".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
64 probe.setBaId(value.toString()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
65 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
66 else if ("soll_datum_uhrzeit_a".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
67 try { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
68 Date d = format.parse(value.toString()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
69 probe.setSolldatumBeginn(d); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
70 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
71 catch (ParseException e) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
72 //TODO handle warning. |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
73 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
74 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
75 else if ("soll_datum_uhrzeit_e".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
76 try { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
77 Date d = format.parse(value.toString()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
78 probe.setSolldatumEnde(d); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
79 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
80 catch (ParseException e) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
81 //TODO handle warning. |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
82 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
83 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
84 else if ("probenahme_datum_uhrzeit_a".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
85 try { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
86 Date d = format.parse(value.toString()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
87 probe.setProbeentnahmeBeginn(d); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
88 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
89 catch (ParseException e) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
90 //TODO handle warning. |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
91 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
92 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
93 else if ("probenahme_datum_uhrzeit_e".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
94 try { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
95 Date d = format.parse(value.toString()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
96 probe.setProbeentnahmeEnde(d); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
97 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
98 catch (ParseException e) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
99 //TODO handle warning. |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
100 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
101 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
102 else if ("umweltbereich_s".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
103 probe.setUmwId(value.toString()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
104 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
105 else if ("deskriptoren".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
106 probe.setMediaDesk(value.toString()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
107 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
108 else if ("testdaten".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
109 if (!value.toString().equals("0")) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
110 probe.setTest(true); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
111 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
112 else { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
113 probe.setTest(false); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
114 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
115 } |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
116 |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
117 probe.setProbenartId(1); |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
118 return probe; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
119 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
120 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
121 public LKommentarP addAttribute( |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
122 String key, |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
123 Object values, |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
124 LKommentarP kommentar |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
125 ) { |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
126 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
127 String v = values.toString(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
128 String erzeuger = v.substring(1, 5); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
129 String date = v.substring(8, 21); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
130 Date d; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
131 try { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
132 d = format.parse(date); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
133 kommentar.setKDatum(d); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
134 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
135 catch (ParseException e) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
136 //TODO: handle warning. |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
137 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
138 String text = v.substring(23, v.length() -1); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
139 kommentar.setErzeuger(erzeuger); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
140 kommentar.setKText(text); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
141 return kommentar; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
142 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
143 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
144 public LKommentarM addAttribute( |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
145 String key, |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
146 Object values, |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
147 LKommentarM kommentar |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
148 ) { |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
149 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
150 String v = values.toString(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
151 String erzeuger = v.substring(1, 5); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
152 String date = v.substring(8, 21); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
153 Date d; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
154 try { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
155 d = format.parse(date); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
156 kommentar.setKDatum(d); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
157 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
158 catch (ParseException e) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
159 //TODO: handle warning. |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
160 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
161 String text = v.substring(23, v.length() -1); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
162 kommentar.setErzeuger(erzeuger); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
163 kommentar.setKText(text); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
164 return kommentar; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
165 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
166 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
167 public LMessung addAttribute( |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
168 String key, |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
169 Object values, |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
170 LMessung messung |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
171 ) { |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
172 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
173 if ("messungs_id".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
174 LMessungId id = messung.getId(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
175 Integer v = Integer.valueOf(values.toString()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
176 id.setMessungsId(v); |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
177 messung.setMessungsId(v); |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
178 messung.setId(id); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
179 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
180 else if ("nebenprobennummer".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
181 messung.setNebenprobenNr(values.toString()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
182 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
183 else if ("mess_datum_uhrzeit".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
184 try { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
185 Date d = format.parse(values.toString()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
186 messung.setMesszeitpunkt(d); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
187 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
188 catch (ParseException e) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
189 //TODO: handle warnings. |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
190 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
191 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
192 else if ("messzeit_sekunden".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
193 Integer i = Integer.valueOf(values.toString()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
194 messung.setMessdauer(i); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
195 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
196 else if ("messmethode_s".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
197 messung.setMmtId(values.toString()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
198 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
199 else if ("bearbeitungsstatus".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
200 //ignored.!? |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
201 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
202 else if ("erfassung_abgeschlossen".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
203 if(!values.toString().equals("0")) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
204 messung.setFertig(true); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
205 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
206 else { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
207 messung.setFertig(false); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
208 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
209 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
210 return messung; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
211 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
212 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
213 public LMesswert addAttribute( |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
214 String key, |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
215 Object values, |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
216 LMesswert messwert |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
217 ) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
218 Pattern p = Pattern.compile( |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
219 "(\".+\")( .+ )(\".+\")( .*)( .{1,12})( .{1,9})(.{0,9})(.{0,3})"); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
220 //TODO Does not perfectly match... Use better matching for floats. |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
221 Matcher m = p.matcher(values.toString()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
222 if (m.matches()) { |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
223 String messgroesse = m.group(1).substring(1, m.group(1).length() - 1); |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
224 String wert = m.group(2); |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
225 String einheit = m.group(3).substring(1, m.group(3).length() - 1); |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
226 if (wert.startsWith(" <")) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
227 wert = wert.substring(2); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
228 messwert.setGrenzwertueberschreitung(false); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
229 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
230 else if (wert.startsWith(" >")) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
231 wert = wert.substring(2); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
232 messwert.setGrenzwertueberschreitung(true); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
233 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
234 float fWert = Float.valueOf(wert); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
235 messwert.setMesswert(fWert); |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
236 Response responseEinheit = sRepository.findAll(SMessEinheit.class); |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
237 List<SMessEinheit> einheiten = |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
238 (List<SMessEinheit>)responseEinheit.getData(); |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
239 boolean foundEinheit = false; |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
240 for (SMessEinheit e: einheiten) { |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
241 if(e.getEinheit().equals(einheit)) { |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
242 foundEinheit = true; |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
243 messwert.setMehId((int) e.getMehId()); |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
244 } |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
245 } |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
246 if (!foundEinheit) { |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
247 return null; |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
248 //TODO: handle warning! |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
249 } |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
250 Response responseGroesse = sRepository.findAll(SMessgroesse.class); |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
251 List<SMessgroesse> messgroessen = |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
252 (List<SMessgroesse>)responseGroesse.getData(); |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
253 boolean foundGroesse = false; |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
254 for (SMessgroesse g: messgroessen) { |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
255 if(g.getMessgro0esse().equals(messgroesse)) { |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
256 foundGroesse = true; |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
257 messwert.setMessgroesseId(g.getMessgroesseId()); |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
258 messwert.getId().setMessgroesseId(g.getMessgroesseId()); |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
259 } |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
260 } |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
261 if (!foundGroesse) { |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
262 return null; |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
263 //TODO: handle warning! |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
310
diff
changeset
|
264 } |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
265 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
266 //TODO: Match the other values. |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
267 return messwert; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
268 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
269 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
270 public LOrt addAttribute( |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
271 String key, |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
272 Object values, |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
273 LOrt ort |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
274 ) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
275 if ("ort_id".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
276 Integer v = Integer.valueOf(values.toString()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
277 ort.setOrtId(v); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
278 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
279 else if ("ort_typ".equals(key)) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
280 ort.setOrtsTyp(values.toString()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
281 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
282 return ort; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
283 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
284 } |