annotate src/main/java/de/intevation/lada/data/importer/LAFImporter.java @ 366:567ce7697fc7 0.5

Code documentation.
author Raimund Renkert <rrenkert@intevation.de>
date Tue, 10 Sep 2013 15:55:54 +0200
parents e0bbb54f2f7c
children 183f8116d9a6
rev   line source
310
821557a17e5e First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
1 package de.intevation.lada.data.importer;
821557a17e5e First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
2
331
5d11428e6a09 Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents: 321
diff changeset
3 import java.util.ArrayList;
321
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
4 import java.util.HashMap;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
5 import java.util.List;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
6 import java.util.Map;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
7
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
8 import javax.ejb.Stateless;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
9 import javax.inject.Inject;
310
821557a17e5e First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
10 import javax.inject.Named;
321
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
11 import javax.persistence.EntityManager;
310
821557a17e5e First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
12
821557a17e5e First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
13 import de.intevation.lada.auth.AuthenticationResponse;
321
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
14 import de.intevation.lada.data.Repository;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
15 import de.intevation.lada.validation.Validator;
310
821557a17e5e First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
16
366
567ce7697fc7 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 357
diff changeset
17 /**
567ce7697fc7 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 357
diff changeset
18 * This importer uses the LAFParser to read data and create error/warning reports.
567ce7697fc7 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 357
diff changeset
19 *
567ce7697fc7 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 357
diff changeset
20 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a>
567ce7697fc7 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 357
diff changeset
21 */
310
821557a17e5e First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
22 @Named("lafimporter")
321
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
23 @Stateless
310
821557a17e5e First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
24 public class LAFImporter
821557a17e5e First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
25 implements Importer
821557a17e5e First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
26 {
321
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
27
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
28 @Inject
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
29 private EntityManager em;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
30
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
31 @Inject
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
32 private LAFParser parser;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
33
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
34 @Inject
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
35 @Named("lprobevalidator")
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
36 private Validator probeValidator;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
37 @Inject
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
38 @Named("lmessungvalidator")
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
39 private Validator messungValidator;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
40 @Inject
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
41 @Named("lortvalidator")
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
42 private Validator ortValidator;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
43 @Inject
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
44 @Named("lmesswertvalidator")
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
45 private Validator messwertValidator;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
46
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
47 @Inject
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
48 @Named("lproberepository")
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
49 private Repository probeRepository;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
50 @Inject
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
51 @Named("lmessungrepository")
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
52 private Repository messungRepository;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
53 @Inject
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
54 @Named("lortrepository")
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
55 private Repository ortRepository;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
56 @Inject
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
57 @Named("lkommentarRepository")
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
58 private Repository pKommentarRepository;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
59 @Inject
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
60 @Named("lkommentarmrepository")
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
61 private Repository mKommentarRepository;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
62 @Inject
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
63 @Named("lmesswertrepository")
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
64 private Repository messwertRepository;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
65
331
5d11428e6a09 Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents: 321
diff changeset
66 private Map<String, List<ReportData>> warnings;
5d11428e6a09 Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents: 321
diff changeset
67 private Map<String, List<ReportData>> errors;
321
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
68
366
567ce7697fc7 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 357
diff changeset
69 /**
567ce7697fc7 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 357
diff changeset
70 * Default constructor.
567ce7697fc7 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 357
diff changeset
71 */
321
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
72 public LAFImporter() {
331
5d11428e6a09 Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents: 321
diff changeset
73 warnings = new HashMap<String, List<ReportData>>();
5d11428e6a09 Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents: 321
diff changeset
74 errors = new HashMap<String, List<ReportData>>();
321
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
75 }
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
76
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
77 /**
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
78 * @return the warnings
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
79 */
331
5d11428e6a09 Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents: 321
diff changeset
80 public Map<String, List<ReportData>> getWarnings() {
321
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
81 return warnings;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
82 }
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
83
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
84 /**
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
85 * @return the errors
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
86 */
331
5d11428e6a09 Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents: 321
diff changeset
87 public Map<String, List<ReportData>> getErrors() {
321
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
88 return errors;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
89 }
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
90
366
567ce7697fc7 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 357
diff changeset
91 /**
567ce7697fc7 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 357
diff changeset
92 * Import LAF formated data using authentication information.
567ce7697fc7 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 357
diff changeset
93 *
567ce7697fc7 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 357
diff changeset
94 * @param content The LAF file content.
567ce7697fc7 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 357
diff changeset
95 * @param auth The authentication information.
567ce7697fc7 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 357
diff changeset
96 * @return success.
567ce7697fc7 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 357
diff changeset
97 */
310
821557a17e5e First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
98 @Override
321
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
99 public boolean importData(String content, AuthenticationResponse auth) {
331
5d11428e6a09 Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents: 321
diff changeset
100 this.warnings.clear();
5d11428e6a09 Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents: 321
diff changeset
101 this.errors.clear();
5d11428e6a09 Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents: 321
diff changeset
102 this.parser.reset();
321
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
103 try {
337
cb47c33b119d Imporved error/warning handling and fixed some bugs in the importer module.
Raimund Renkert <rrenkert@intevation.de>
parents: 331
diff changeset
104 boolean success = parser.parse(auth, content);
cb47c33b119d Imporved error/warning handling and fixed some bugs in the importer module.
Raimund Renkert <rrenkert@intevation.de>
parents: 331
diff changeset
105 if (!success) {
331
5d11428e6a09 Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents: 321
diff changeset
106 List<ReportData> report = new ArrayList<ReportData>();
337
cb47c33b119d Imporved error/warning handling and fixed some bugs in the importer module.
Raimund Renkert <rrenkert@intevation.de>
parents: 331
diff changeset
107 report.add(new ReportData("parser", "no success", 660));
331
5d11428e6a09 Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents: 321
diff changeset
108 errors.put("parser", report);
337
cb47c33b119d Imporved error/warning handling and fixed some bugs in the importer module.
Raimund Renkert <rrenkert@intevation.de>
parents: 331
diff changeset
109 warnings.put("parser", new ArrayList<ReportData>());
321
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
110 return false;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
111 }
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
112 }
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
113 catch (LAFParserException e) {
331
5d11428e6a09 Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents: 321
diff changeset
114 List<ReportData> report = new ArrayList<ReportData>();
337
cb47c33b119d Imporved error/warning handling and fixed some bugs in the importer module.
Raimund Renkert <rrenkert@intevation.de>
parents: 331
diff changeset
115 report.add(new ReportData("parser", e.getMessage(), 670));
331
5d11428e6a09 Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents: 321
diff changeset
116 errors.put("parser", report);
337
cb47c33b119d Imporved error/warning handling and fixed some bugs in the importer module.
Raimund Renkert <rrenkert@intevation.de>
parents: 331
diff changeset
117 warnings.put("parser", new ArrayList<ReportData>());
321
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
118 return false;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
119 }
331
5d11428e6a09 Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents: 321
diff changeset
120 this.warnings.putAll(this.parser.getWarnings());
5d11428e6a09 Made the importer a little more robust and introduced a better warning/error reporting.
Raimund Renkert <rrenkert@intevation.de>
parents: 321
diff changeset
121 this.errors.putAll(this.parser.getErrors());
321
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
122 return true;
5844d7457dde Completed importer for LAF format. Ort objects still need some attention.
Raimund Renkert <rrenkert@intevation.de>
parents: 310
diff changeset
123 }
357
e0bbb54f2f7c Added reset for errors and warnings in importer.
Raimund Renkert <rrenkert@intevation.de>
parents: 337
diff changeset
124
366
567ce7697fc7 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 357
diff changeset
125 /**
567ce7697fc7 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 357
diff changeset
126 * Reset the errors and warnings. Use this before calling importData()
567ce7697fc7 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 357
diff changeset
127 * to have a clean error and warning report.
567ce7697fc7 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 357
diff changeset
128 */
357
e0bbb54f2f7c Added reset for errors and warnings in importer.
Raimund Renkert <rrenkert@intevation.de>
parents: 337
diff changeset
129 public void reset() {
e0bbb54f2f7c Added reset for errors and warnings in importer.
Raimund Renkert <rrenkert@intevation.de>
parents: 337
diff changeset
130 parser.reset();
e0bbb54f2f7c Added reset for errors and warnings in importer.
Raimund Renkert <rrenkert@intevation.de>
parents: 337
diff changeset
131 this.warnings = new HashMap<String, List<ReportData>>();
e0bbb54f2f7c Added reset for errors and warnings in importer.
Raimund Renkert <rrenkert@intevation.de>
parents: 337
diff changeset
132 this.errors = new HashMap<String, List<ReportData>>();
e0bbb54f2f7c Added reset for errors and warnings in importer.
Raimund Renkert <rrenkert@intevation.de>
parents: 337
diff changeset
133 }
310
821557a17e5e First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
134 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)