Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/importer/laf/LafParser.java @ 1028:1c41c7b8f7c2 schema-update
Updated server application to new database model. THIS IS STILL WIP!!!
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Fri, 08 Jul 2016 15:32:36 +0200 |
parents | 092e673cbb8d |
children | fdc752cd17fe |
rev | line source |
---|---|
626
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
2 * Software engineering by Intevation GmbH |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
3 * |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
4 * This file is Free Software under the GNU GPL (v>=3) |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
6 * the documentation coming with IMIS-Labordaten-Application for details. |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
7 */ |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
8 package de.intevation.lada.importer.laf; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
9 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
10 import java.util.ArrayList; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
11 import java.util.HashMap; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
12 import java.util.List; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
13 import java.util.Map; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
14 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
15 import javax.inject.Inject; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
16 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
17 import org.apache.log4j.Logger; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
18 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
19 import de.intevation.lada.importer.ReportItem; |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
810
diff
changeset
|
20 import de.intevation.lada.model.land.Messung; |
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
810
diff
changeset
|
21 import de.intevation.lada.model.land.Ortszuordnung; |
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
810
diff
changeset
|
22 import de.intevation.lada.model.land.Probe; |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
23 import de.intevation.lada.util.auth.UserInfo; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
24 import de.intevation.lada.validation.Validator; |
615
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
25 import de.intevation.lada.validation.Violation; |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
26 import de.intevation.lada.validation.annotation.ValidationConfig; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
27 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
28 /** |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
29 * This parser is used to read data in LAF based key-value pair structure. |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
30 * |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
31 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
32 */ |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
33 public class LafParser { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
34 |
626
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
35 /** |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
36 * The logger used in this class. |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
37 */ |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
38 @Inject |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
39 private Logger logger; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
40 |
626
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
41 /** |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
42 * The start tag of a dataset. |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
43 */ |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
44 private static final String PROBE_NEXT = "\n%PROBE%"; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
45 |
626
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
46 /** |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
47 * Flag used to write data into the database or not. |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
48 */ |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
49 private boolean dryRun; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
50 |
626
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
51 /** |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
52 * The data object producer. |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
53 */ |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
54 @Inject |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
55 private LafProducer producer; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
56 |
626
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
57 /** |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
58 * The writer used to create objects in the database. |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
59 */ |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
60 @Inject |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
61 private LafWriter writer; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
62 |
626
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
63 /** |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
64 * The validator for probe objects. |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
65 */ |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
66 @Inject |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
67 @ValidationConfig(type="Probe") |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
68 private Validator probeValidator; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
69 |
626
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
70 /** |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
71 * The validator for messung objects. |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
72 */ |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
73 @Inject |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
74 @ValidationConfig(type="Messung") |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
75 private Validator messungValidator; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
76 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
77 //@Inject |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
78 //@ValidationConfig(type="Messwert") |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
79 //private Validator messwertValidator; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
80 |
672
aeae6a81f28e
Validate imported Ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
626
diff
changeset
|
81 @Inject |
aeae6a81f28e
Validate imported Ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
626
diff
changeset
|
82 @ValidationConfig(type="Ort") |
aeae6a81f28e
Validate imported Ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
626
diff
changeset
|
83 private Validator ortValidator; |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
84 |
626
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
85 /** |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
86 * The warnings. |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
87 */ |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
88 private Map<String, List<ReportItem>> warnings; |
626
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
89 |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
90 /** |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
91 * The errors. |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
92 */ |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
93 private Map<String, List<ReportItem>> errors; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
94 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
95 /** |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
96 * Default constructor. |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
97 */ |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
98 public LafParser() { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
99 this.warnings = new HashMap<String, List<ReportItem>>(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
100 this.errors = new HashMap<String, List<ReportItem>>(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
101 this.setDryRun(false); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
102 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
103 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
104 /** |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
105 * Read and parse the data and write the objects to the database. |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
106 * |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
107 * @param auth Authentication information |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
108 * @param laf The LAF formated data. |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
109 * @return success |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
110 * @throws LafParserException |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
111 */ |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
112 public boolean parse(UserInfo userInfo, String laf) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
113 if (!laf.startsWith("%PROBE%\n")) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
114 logger.debug("no %PROBE% tag found!"); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
115 return false; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
116 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
117 boolean parsed = false; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
118 while (laf.startsWith("%PROBE%\n")) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
119 parsed = true; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
120 int nextPos = laf.indexOf(PROBE_NEXT); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
121 String single = ""; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
122 if (nextPos > 0) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
123 single = laf.substring(0, nextPos + 1); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
124 laf = laf.substring(nextPos + 1); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
125 try { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
126 readAll(single); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
127 this.warnings.putAll(producer.getWarnings()); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
128 this.errors.putAll(producer.getErrors()); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
129 writeAll(userInfo); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
130 this.producer.reset(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
131 this.writer.reset(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
132 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
133 catch (LafParserException lpe) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
134 Map<String, List<ReportItem>> pErr = producer.getErrors(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
135 if (pErr.isEmpty()) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
136 List<ReportItem> err = new ArrayList<ReportItem>(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
137 err.add(new ReportItem("parser", lpe.getMessage(), 673)); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
138 this.errors.put("parser", err); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
139 this.warnings.put("parser", new ArrayList<ReportItem>()); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
140 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
141 else { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
142 this.errors.putAll(pErr); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
143 this.warnings.putAll(producer.getWarnings()); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
144 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
145 this.producer.reset(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
146 continue; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
147 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
148 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
149 else { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
150 try { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
151 readAll(laf); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
152 this.warnings.putAll(producer.getWarnings()); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
153 this.errors.putAll(producer.getErrors()); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
154 writeAll(userInfo); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
155 this.producer.reset(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
156 this.writer.reset(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
157 laf = ""; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
158 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
159 catch (LafParserException lpe) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
160 Map<String, List<ReportItem>> pErr = producer.getErrors(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
161 if (pErr.isEmpty()) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
162 List<ReportItem> err = new ArrayList<ReportItem>(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
163 err.add(new ReportItem("parser", lpe.getMessage(), 673)); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
164 this.errors.put("parser", err); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
165 this.warnings.put("parser", new ArrayList<ReportItem>()); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
166 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
167 else { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
168 this.errors.putAll(pErr); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
169 this.warnings.putAll(producer.getWarnings()); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
170 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
171 this.producer.reset(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
172 laf = ""; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
173 continue; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
174 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
175 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
176 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
177 return parsed; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
178 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
179 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
180 /** |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
181 * Write all created objects to the database. |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
182 * |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
183 * @param auth The authentication information. |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
184 */ |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
185 private void writeAll(UserInfo userInfo) { |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
810
diff
changeset
|
186 String probeId = producer.getProbe().getIdAlt() == null ? |
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
810
diff
changeset
|
187 "probeId" : producer.getProbe().getIdAlt().toString(); |
615
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
188 Violation violation = validateProbe(producer.getProbe()); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
189 if (violation.hasErrors()) { |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
190 ReportItem err = new ReportItem("validation", violation.getErrors(), null); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
191 List<ReportItem> errs= new ArrayList<ReportItem>(); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
192 errs.add(err); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
193 this.appendErrors(probeId, errs); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
194 return; |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
195 } |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
810
diff
changeset
|
196 boolean p = writer.writeProbe(userInfo, producer.getProbe()); |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
197 if (!p) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
198 this.errors.put(probeId, writer.getErrors()); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
199 return; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
200 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
201 writer.writeProbenKommentare(userInfo, producer.getProbenKommentare()); |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
810
diff
changeset
|
202 for (Messung messung: producer.getMessungen()) { |
672
aeae6a81f28e
Validate imported Ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
626
diff
changeset
|
203 messung.setProbeId(producer.getProbe().getId()); |
615
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
204 Violation mViolation = messungValidator.validate(messung); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
205 if (mViolation.hasErrors()) { |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
206 ReportItem mErr = new ReportItem("validation", mViolation.getErrors(), null); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
207 List<ReportItem> mErrs = new ArrayList<ReportItem>(); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
208 mErrs.add(mErr); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
209 this.appendErrors(probeId, mErrs); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
210 continue; |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
211 } |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
810
diff
changeset
|
212 boolean m = writer.writeMessungen(userInfo, messung); |
615
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
213 if (!m) { |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
214 return; |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
215 } |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
216 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
217 writer.writeOrte(userInfo, producer.getOrte()); |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
810
diff
changeset
|
218 for (Ortszuordnung ort: producer.getOrtszuordnungen()) { |
672
aeae6a81f28e
Validate imported Ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
626
diff
changeset
|
219 Violation oViolation = ortValidator.validate(ort); |
aeae6a81f28e
Validate imported Ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
626
diff
changeset
|
220 if (oViolation.hasErrors()) { |
aeae6a81f28e
Validate imported Ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
626
diff
changeset
|
221 ReportItem oErr = new ReportItem("validation", oViolation.getErrors(), null); |
aeae6a81f28e
Validate imported Ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
626
diff
changeset
|
222 List<ReportItem> oErrs = new ArrayList<ReportItem>(); |
aeae6a81f28e
Validate imported Ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
626
diff
changeset
|
223 oErrs.add(oErr); |
aeae6a81f28e
Validate imported Ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
626
diff
changeset
|
224 this.appendErrors(probeId, oErrs); |
aeae6a81f28e
Validate imported Ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
626
diff
changeset
|
225 continue; |
aeae6a81f28e
Validate imported Ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
626
diff
changeset
|
226 } |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
810
diff
changeset
|
227 writer.writeOrtszuordung(userInfo, ort); |
672
aeae6a81f28e
Validate imported Ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
626
diff
changeset
|
228 } |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
229 writer.writeMessungKommentare(userInfo, producer.getMessungsKommentare()); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
230 writer.writeMesswerte(userInfo, producer.getMesswerte()); |
615
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
231 Violation postViolation = validateProbe(producer.getProbe()); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
232 if (postViolation.hasWarnings()) { |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
233 ReportItem warn = new ReportItem("validation", postViolation.getWarnings(), null); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
234 List<ReportItem> warns = new ArrayList<ReportItem>(); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
235 warns.add(warn); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
236 this.appendWarnings(probeId, warns); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
237 } |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
810
diff
changeset
|
238 for (Messung messung: producer.getMessungen()) { |
615
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
239 Violation mViolation = messungValidator.validate(messung); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
240 if (mViolation.hasWarnings()) { |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
241 ReportItem mWarn = new ReportItem("validation", mViolation.getWarnings(), null); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
242 List<ReportItem> mWarns = new ArrayList<ReportItem>(); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
243 mWarns.add(mWarn); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
244 this.appendWarnings(probeId, mWarns); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
245 } |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
246 } |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
247 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
248 |
626
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
249 /** |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
250 * Validate probe objects. |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
251 * |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
252 * @param probe The probe object to validate. |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
253 */ |
1028
1c41c7b8f7c2
Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents:
810
diff
changeset
|
254 private Violation validateProbe(Probe probe) { |
615
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
255 return probeValidator.validate(probe); |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
256 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
257 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
258 /** |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
259 * Read all attributes from a single probe block and create entity objects. |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
260 * |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
261 * @param content Single probe block enclosed by %PROBE% |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
262 * @throws LafParserException |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
263 */ |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
264 private void readAll(String content) |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
265 throws LafParserException |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
266 { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
267 boolean key = false; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
268 boolean value = false; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
269 boolean header = false; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
270 boolean white = false; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
271 boolean string = false; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
272 boolean multiValue = false; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
273 String keyString = ""; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
274 String valueString = ""; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
275 String headerString = ""; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
276 for (int i = 0; i < content.length(); i++) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
277 char current = content.charAt(i); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
278 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
279 if ((current == '"' || (current == ' ' && !string)) && |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
280 value && |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
281 i < content.length() - 1 && |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
282 (content.charAt(i + 1) != '\n' && |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
283 content.charAt(i + 1) != '\r')) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
284 multiValue = true; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
285 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
286 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
287 if (current == '"' && !string) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
288 string = true; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
289 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
290 else if (current == '"' && string) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
291 string = false; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
292 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
293 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
294 if (current == ' ' && !value) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
295 key = false; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
296 white = true; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
297 continue; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
298 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
299 else if (current != ' ' && |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
300 current != '\n' && |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
301 current != '\r' && |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
302 white) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
303 value = true; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
304 white = false; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
305 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
306 else if (current == '%' && !header && !value) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
307 headerString = ""; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
308 producer.finishOrt(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
309 key = false; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
310 header = true; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
311 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
312 else if ((current == '\n' || current == '\r') && header) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
313 header = false; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
314 key = true; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
315 if (!dryRun) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
316 if (headerString.contains("MESSUNG")) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
317 producer.newMessung(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
318 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
319 if (headerString.contains("ORT")) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
320 producer.newOrt(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
321 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
322 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
323 if (headerString.contains("%ENDE%")) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
324 if (!dryRun) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
325 this.producer.newMessung(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
326 this.producer.newOrt(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
327 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
328 return; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
329 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
330 continue; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
331 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
332 else if (current == '"' && !value) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
333 value = true; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
334 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
335 else if ((current == '\n' || current == '\r') && value && !string) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
336 if (!multiValue && valueString.startsWith("\"")) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
337 valueString = |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
338 valueString.substring(1, valueString.length() - 1); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
339 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
340 value = false; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
341 multiValue = false; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
342 key = true; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
343 if (!this.dryRun) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
344 producer.addData(keyString, valueString); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
345 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
346 keyString = ""; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
347 valueString = ""; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
348 continue; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
349 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
350 if ((current == '\n' || current == '\r') && (key || white)) { |
615
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
351 ReportItem item = new ReportItem("parser", "general error", 603); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
352 List<ReportItem> items = new ArrayList<ReportItem>(); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
353 items.add(item); |
3f57484e06f1
Updated importer: Do validation and object creation in the correct order.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
610
diff
changeset
|
354 this.appendErrors("parser", items); |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
355 return; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
356 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
357 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
358 if (key) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
359 keyString += current; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
360 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
361 else if (value) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
362 valueString += current; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
363 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
364 else if (header) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
365 headerString += current; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
366 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
367 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
368 if (!dryRun) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
369 this.producer.newMessung(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
370 this.producer.newOrt(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
371 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
372 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
373 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
374 /** |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
375 * @return if objects are or not. |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
376 */ |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
377 public boolean isDryRun() { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
378 return dryRun; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
379 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
380 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
381 /** |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
382 * If set to true, no objects will be created and written to database. |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
383 * |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
384 * @param dryRun |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
385 */ |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
386 public void setDryRun(boolean dryRun) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
387 this.dryRun = dryRun; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
388 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
389 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
390 /** |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
391 * @return the warnings |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
392 */ |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
393 public Map<String, List<ReportItem>> getWarnings() { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
394 return warnings; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
395 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
396 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
397 /** |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
398 * @return the errors |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
399 */ |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
400 public Map<String, List<ReportItem>> getErrors() { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
401 return errors; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
402 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
403 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
404 /** |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
405 * Reset errors and warnings. |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
406 */ |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
407 public void reset() { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
408 producer.reset(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
409 this.errors = new HashMap<String, List<ReportItem>>(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
410 this.warnings = new HashMap<String, List<ReportItem>>(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
411 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
412 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
413 private void appendErrors(String probeId, List<ReportItem> errs) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
414 List<ReportItem> err = this.errors.get(probeId); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
415 if (err == null) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
416 this.errors.put(probeId, errs); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
417 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
418 else { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
419 err.addAll(errs); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
420 this.errors.put(probeId, err); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
421 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
422 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
423 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
424 private void appendWarnings(String probeId, List<ReportItem> warns) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
425 List<ReportItem> warn = this.warnings.get(probeId); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
426 if (warn == null) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
427 this.warnings.put(probeId, warns); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
428 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
429 else { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
430 warn.addAll(warns); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
431 this.warnings.put(probeId, warn); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
432 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
433 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
434 } |