Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/importer/laf/LafImporter.java @ 1037:cd16a41ca3ab schema-update
Fixed datatype for ba_id attribute.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Fri, 02 Sep 2016 14:00:22 +0200 |
parents | 3ec358698b4d |
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 de.intevation.lada.importer.ImportConfig; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
18 import de.intevation.lada.importer.ImportFormat; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
19 import de.intevation.lada.importer.Importer; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
20 import de.intevation.lada.importer.ReportItem; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
21 import de.intevation.lada.util.auth.UserInfo; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
22 |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
626
diff
changeset
|
23 /** |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
626
diff
changeset
|
24 * LAF importer implements Importer to read LAF formatted files. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
626
diff
changeset
|
25 * The importer parses the files and extracts probe objects and their children |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
626
diff
changeset
|
26 * and persists them in the database. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
626
diff
changeset
|
27 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
626
diff
changeset
|
28 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
626
diff
changeset
|
29 */ |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
30 @ImportConfig(format=ImportFormat.LAF) |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
31 public class LafImporter implements Importer { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
32 |
626
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
33 /** |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
34 * The parser used for this importer. |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
35 */ |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
36 @Inject |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
37 private LafParser parser; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
38 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
39 private Map<String, List<ReportItem>> warnings; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
40 private Map<String, List<ReportItem>> errors; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
41 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
42 /** |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
43 * Default constructor. |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
44 */ |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
45 public LafImporter() { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
46 warnings = new HashMap<String, List<ReportItem>>(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
47 errors = new HashMap<String, List<ReportItem>>(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
48 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
49 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
50 /** |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
51 * @return the warnings |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
52 */ |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
53 @Override |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
54 public Map<String, List<ReportItem>> getWarnings() { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
55 return warnings; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
56 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
57 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
58 /** |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
59 * @return the errors |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
60 */ |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
61 @Override |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
62 public Map<String, List<ReportItem>> getErrors() { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
63 return errors; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
64 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
65 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
66 /** |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
67 * Reset the errors and warnings. Use this before calling doImport() |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
68 * to have a clean error and warning report. |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
69 */ |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
70 @Override |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
71 public void reset() { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
72 parser.reset(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
73 warnings = new HashMap<String, List<ReportItem>>(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
74 errors = new HashMap<String, List<ReportItem>>(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
75 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
76 |
626
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
77 /** |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
78 * Start the import. |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
79 * |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
80 * @param content The laf data as string. |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
81 * @param userInfo The user information. |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
82 */ |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
83 @Override |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
84 public void doImport(String content, UserInfo userInfo) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
85 this.warnings.clear(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
86 this.errors.clear(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
87 this.parser.reset(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
88 boolean success = parser.parse(userInfo, content); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
89 if (!success) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
90 List<ReportItem> report = new ArrayList<ReportItem>(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
91 report.add(new ReportItem("parser", "no success", 660)); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
92 errors.put("parser", report); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
93 warnings.put("parser", new ArrayList<ReportItem>()); |
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 this.warnings.putAll(this.parser.getWarnings()); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
96 this.errors.putAll(this.parser.getErrors()); |
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 } |