Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/data/importer/LAFProducer.java @ 331:5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Tue, 27 Aug 2013 15:28:21 +0200 |
parents | 5844d7457dde |
children | cb47c33b119d |
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.util.ArrayList; |
331
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
4 import java.util.HashMap; |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
5 import java.util.LinkedList; |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
6 import java.util.List; |
331
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
7 import java.util.Map; |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
8 |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
9 import javax.inject.Inject; |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 import javax.inject.Named; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 import de.intevation.lada.model.LKommentarM; |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
13 import de.intevation.lada.model.LKommentarMId; |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 import de.intevation.lada.model.LKommentarP; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 import de.intevation.lada.model.LMessung; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 import de.intevation.lada.model.LMessungId; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 import de.intevation.lada.model.LMesswert; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
18 import de.intevation.lada.model.LMesswertId; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 import de.intevation.lada.model.LOrt; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 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:
317
diff
changeset
|
21 import de.intevation.lada.model.LProbe; |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
22 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
23 @Named("lafproducer") |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
24 public class LAFProducer |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
25 implements Producer |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
26 { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 private LProbe probe; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 private LMessung messung; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 private LOrt ort; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
31 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
32 private List<LKommentarP> pKommentare; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
33 private List<LKommentarM> mKommentare; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 private List<LMessung> messungen; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 private List<LOrt> orte; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 private List<LMesswert> messwerte; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
37 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 private List<EntryFormat> probenFormat; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 private List<EntryFormat> messungFormat; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 private List<EntryFormat> ortFormat; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 |
331
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
42 private Map<String, List<ReportData>> warnings; |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
43 private Map<String, List<ReportData>> errors; |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
44 |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
45 @Inject |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 private AttributeMapper mapper; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 public LAFProducer() { |
331
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
49 this.warnings = new HashMap<String, List<ReportData>>(); |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
50 this.errors = new HashMap<String, List<ReportData>>(); |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 this.probe = new LProbe(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 this.pKommentare = new ArrayList<LKommentarP>(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 this.mKommentare = new ArrayList<LKommentarM>(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 this.messungen = new ArrayList<LMessung>(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 this.orte = new ArrayList<LOrt>(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
56 this.messwerte = new ArrayList<LMesswert>(); |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
57 String fileName = System.getProperty("de.intevation.lada.importconfig"); |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
58 LAFFormat format = new LAFFormat(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
59 format.readConfigFile(fileName); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
60 probenFormat = format.getFormat("probe"); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
61 messungFormat = format.getFormat("messung"); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
62 ortFormat = format.getFormat("ort"); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
63 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
64 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
65 @Override |
331
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
66 public void addData(String key, Object values) |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
67 throws LAFParserException { |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
68 String lKey = key.toLowerCase(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
69 if(lKey.equals("probenkommentar")) { |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
70 LKommentarP kommentar = new LKommentarP(); |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
71 kommentar.setProbeId(this.probe.getProbeId()); |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
72 this.pKommentare.add( |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
73 mapper.addAttribute(lKey, values, kommentar)); |
310
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 (lKey.equals("kommentar")) { |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
76 LKommentarMId id = new LKommentarMId(); |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
77 id.setMessungsId(this.messung.getMessungsId()); |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
78 id.setProbeId(this.probe.getProbeId()); |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
79 LKommentarM kommentar = new LKommentarM(); |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
80 kommentar.setId(id); |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
81 kommentar.setMessungsId(this.messung.getMessungsId()); |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
82 kommentar.setProbeId(this.probe.getProbeId()); |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
83 this.mKommentare.add( |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
84 mapper.addAttribute(lKey, values, kommentar)); |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
85 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
86 else if (lKey.equals("probenzusatzbeschreibung")) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
87 //TODO: implement this! |
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 else if (lKey.equals("pzb_s")) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
90 //TODO: implement this! |
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 else if (lKey.equals("messwert")) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
93 LMesswertId id = new LMesswertId(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
94 id.setProbeId(this.probe.getProbeId()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
95 id.setMessungsId(this.messung.getId().getMessungsId()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
96 LMesswert m = new LMesswert(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
97 m.setId(id); |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
98 m.setMessungsId(this.messung.getMessungsId()); |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
99 m.setProbeId(this.probe.getProbeId()); |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
100 LMesswert wert = mapper.addAttribute(lKey, values, m); |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
101 if (wert != null) { |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
102 this.messwerte.add(wert); |
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
103 } |
310
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 (isValidMessung(lKey, values.toString())) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
106 this.messung = mapper.addAttribute(lKey, values, this.messung); |
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 (isValidProbe(lKey, values.toString())) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
109 this.probe = mapper.addAttribute(lKey, values, this.probe); |
331
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
110 if (this.probe == null) { |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
111 this.errors.put(values.toString(), mapper.getErrors()); |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
112 throw new LAFParserException(values.toString() + " exists"); |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
113 } |
310
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 else if (isValidOrt(lKey, values.toString())) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
116 this.ort = mapper.addAttribute(lKey, values, this.ort); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
117 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
118 } |
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 private boolean isValidOrt(String key, String value) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
121 for (EntryFormat ef: ortFormat) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
122 if (ef.getKey().equals(key.toLowerCase())) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
123 if (ef.getPattern().matcher(value).matches()) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
124 return true; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
125 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
126 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
127 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
128 return false; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
129 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
130 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
131 private boolean isValidMessung(String key, String value) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
132 for (EntryFormat ef: messungFormat) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
133 if (ef.getKey().equals(key.toLowerCase())) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
134 if (ef.getPattern().matcher(value).matches()) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
135 return true; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
136 } |
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 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
139 return false; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
140 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
141 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
142 private boolean isValidProbe(String key, String value) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
143 for (EntryFormat ef: probenFormat) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
144 if (ef.getKey().equals(key.toLowerCase())) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
145 if (ef.getPattern().matcher(value).matches()) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
146 return true; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
147 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
148 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
149 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
150 return false; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
151 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
152 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
153 @Override |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
154 public LProbe getProbe() { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
155 return this.probe; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
156 } |
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 @Override |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
159 public List<LMessung> getMessungen() { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
160 return this.messungen; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
161 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
162 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
163 @Override |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
164 public List<LOrt> getOrte() { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
165 return this.orte; |
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 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
168 @Override |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
169 public List<LKommentarP> getProbenKommentare() { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
170 return this.pKommentare; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
171 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
172 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
173 @Override |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
174 public List<LKommentarM> getMessungsKommentare() { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
175 return this.mKommentare; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
176 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
177 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
178 @Override |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
179 public List<LMesswert> getMesswerte() { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
180 return this.messwerte; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
181 } |
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 @Override |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
184 public void reset() { |
331
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
185 this.errors.clear(); |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
186 this.warnings.clear(); |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
187 this.probe = new LProbe(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
188 this.messungen.clear(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
189 this.messung = null; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
190 this.orte.clear(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
191 this.ort = null; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
192 this.messwerte.clear(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
193 this.mKommentare.clear(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
194 this.pKommentare.clear(); |
331
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
195 mapper.reset(); |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
196 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
197 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
198 public void newMessung() { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
199 if (this.messung != null) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
200 this.messungen.add(this.messung); |
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 LMessungId id = new LMessungId(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
203 id.setProbeId(this.probe.getProbeId()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
204 this.messung = new LMessung(); |
321
5844d7457dde
Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents:
317
diff
changeset
|
205 this.messung.setProbeId(this.probe.getProbeId()); |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
206 this.messung.setId(id); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
207 } |
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 public void newOrt() { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
210 if (this.ort != null) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
211 this.orte.add(this.ort); |
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 this.ort = new LOrt(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
214 this.ort.setProbeId(this.probe.getProbeId()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
215 } |
331
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
216 |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
217 /** |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
218 * @return the warnings |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
219 */ |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
220 public Map<String, List<ReportData>> getWarnings() { |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
221 return this.warnings; |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
222 } |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
223 |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
224 /** |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
225 * @return the errors |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
226 */ |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
227 public Map<String, List<ReportData>> getErrors() { |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
228 return this.errors; |
5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents:
321
diff
changeset
|
229 } |
310
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
230 } |