annotate src/main/java/de/intevation/lada/importer/laf/LafImporter.java @ 1097:186d602e031a

Merged branch schema-update into default.
author Tom Gottfried <tom@intevation.de>
date Fri, 14 Oct 2016 18:17:42 +0200
parents 3ec358698b4d
children 7683c4162746
rev   line source
610
374a2e78cec5 Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
1 package de.intevation.lada.importer.laf;
374a2e78cec5 Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
2
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
3 import java.io.ByteArrayInputStream;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
4 import java.io.IOException;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
5 import java.io.InputStream;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
6 import java.nio.charset.StandardCharsets;
610
374a2e78cec5 Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
7 import java.util.HashMap;
374a2e78cec5 Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8 import java.util.List;
374a2e78cec5 Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9 import java.util.Map;
374a2e78cec5 Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10
374a2e78cec5 Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11 import javax.inject.Inject;
374a2e78cec5 Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
13 import org.antlr.v4.runtime.ANTLRInputStream;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
14 import org.antlr.v4.runtime.CommonTokenStream;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
15 import org.antlr.v4.runtime.tree.ParseTree;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
16 import org.antlr.v4.runtime.tree.ParseTreeWalker;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
17 import org.apache.log4j.Logger;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
18
610
374a2e78cec5 Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19 import de.intevation.lada.importer.ImportConfig;
374a2e78cec5 Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20 import de.intevation.lada.importer.ImportFormat;
374a2e78cec5 Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21 import de.intevation.lada.importer.Importer;
374a2e78cec5 Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22 import de.intevation.lada.importer.ReportItem;
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
374a2e78cec5 Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 @ImportConfig(format=ImportFormat.LAF)
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
26 public class LafImporter implements Importer{
610
374a2e78cec5 Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
28 @Inject
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
29 private Logger logger;
610
374a2e78cec5 Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
31 @Inject
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
32 private LafObjectMapper mapper;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
33
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
34 private Map<String, List<ReportItem>> errors = new HashMap<String, List<ReportItem>>();
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
35 private Map<String, List<ReportItem>> warnings = new HashMap<String, List<ReportItem>>();
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
36
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
37 public void doImport(String lafString, UserInfo userInfo) {
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
38 errors = new HashMap<String, List<ReportItem>>();
610
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
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
41 InputStream is = new ByteArrayInputStream(lafString.getBytes(StandardCharsets.UTF_8));
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
42 try {
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
43 ANTLRInputStream ais = new ANTLRInputStream(is);
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
44 LafLexer lexer = new LafLexer(ais);
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
45 CommonTokenStream cts = new CommonTokenStream(lexer);
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
46 LafParser parser = new LafParser(cts);
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
47 LafErrorListener errorListener = LafErrorListener.INSTANCE;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
48 parser.addErrorListener(errorListener);
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
49 ParseTree tree = parser.probendatei();
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
50 LafObjectListener listener = new LafObjectListener();
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
51 ParseTreeWalker walker = new ParseTreeWalker();
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
52 walker.walk(listener, tree);
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
53 logger.debug("Parsed Proben: " + listener.getData().count());
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
54 errors.put("parser", errorListener.getErrors());
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
55 errors.putAll(listener.getErrors());
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
56 mapper.mapObjects(listener.getData());
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
57 } catch (IOException e) {
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
58 // TODO Auto-generated catch block
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
59 e.printStackTrace();
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
60 }
610
374a2e78cec5 Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61 }
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() {
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
65
610
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
374a2e78cec5 Added importer impl for laf file format.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68 @Override
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
69 public Map<String, List<ReportItem>> getWarnings() {
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
70 return this.errors;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
71 }
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
72
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
73 @Override
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
74 public Map<String, List<ReportItem>> getErrors() {
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
75 return this.warnings;
610
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 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)