Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/importer/laf/LafImporter.java @ 626:9e733f44d8b0
Code style and comments.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Mon, 20 Apr 2015 17:45:22 +0200 |
parents | 8086664d1629 |
children | 3ec358698b4d |
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 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
23 @ImportConfig(format=ImportFormat.LAF) |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
24 public class LafImporter implements Importer { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
25 |
626
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
26 /** |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
27 * The parser used for this importer. |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
28 */ |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
29 @Inject |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
30 private LafParser parser; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
31 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
32 private Map<String, List<ReportItem>> warnings; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
33 private Map<String, List<ReportItem>> errors; |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
34 |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
35 /** |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
36 * Default constructor. |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
37 */ |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
38 public LafImporter() { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
39 warnings = new HashMap<String, List<ReportItem>>(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
40 errors = new HashMap<String, List<ReportItem>>(); |
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 /** |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
44 * @return the warnings |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
45 */ |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
46 @Override |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
47 public Map<String, List<ReportItem>> getWarnings() { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
48 return warnings; |
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 /** |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
52 * @return the errors |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
53 */ |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
54 @Override |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
55 public Map<String, List<ReportItem>> getErrors() { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
56 return errors; |
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 /** |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
60 * 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
|
61 * 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
|
62 */ |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
63 @Override |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
64 public void reset() { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
65 parser.reset(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
66 warnings = new HashMap<String, List<ReportItem>>(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
67 errors = new HashMap<String, List<ReportItem>>(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
68 } |
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 * Start the import. |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
72 * |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
73 * @param content The laf data as string. |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
74 * @param userInfo The user information. |
9e733f44d8b0
Code style and comments.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
617
diff
changeset
|
75 */ |
610
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
76 @Override |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
77 public void doImport(String content, UserInfo userInfo) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
78 this.warnings.clear(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
79 this.errors.clear(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
80 this.parser.reset(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
81 boolean success = parser.parse(userInfo, content); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
82 if (!success) { |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
83 List<ReportItem> report = new ArrayList<ReportItem>(); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
84 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
|
85 errors.put("parser", report); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
86 warnings.put("parser", new ArrayList<ReportItem>()); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
87 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
88 this.warnings.putAll(this.parser.getWarnings()); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
89 this.errors.putAll(this.parser.getErrors()); |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
90 } |
374a2e78cec5
Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
91 } |