Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/data/importer/LAFParser.java @ 310:821557a17e5e
First version of the LAF importer.
The importer module currently only runs with the test application (comming in the next commit)!
* LAF Parser:
- Uses a small implementation of a state machine.
- Extracts the keys with its value or multi value.
- Uses the producer interface to generate objects.
* Attribute mapper:
- Maps the attributes defined in the configuration file to object attributes.
- Generates objects from multi value attributes.
* LAF format:
- Reads the config file
* LAF importer:
- Implemetation of the importer interface for LAF format.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Tue, 20 Aug 2013 16:13:17 +0200 |
parents | |
children | 2adf28ac7fe0 |
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 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
3 import java.util.ArrayList; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
4 import java.util.List; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
5 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
6 import javax.inject.Inject; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
7 import javax.inject.Named; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
8 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
9 import de.intevation.lada.model.LKommentarM; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 import de.intevation.lada.model.LKommentarP; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 import de.intevation.lada.model.LMessung; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 import de.intevation.lada.model.LMesswert; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 import de.intevation.lada.model.LOrt; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 import de.intevation.lada.model.LProbe; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 public class LAFParser { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
18 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 private static final String PROBE_NEXT = "\n%PROBE%"; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 private boolean dryRun; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
22 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
23 //@Inject |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
24 //@Named("lafproducer") |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
25 private Producer producer; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
26 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 List<LProbe> proben; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 List<LMessung> messungen; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 List<LOrt> orte; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 List<LMesswert> messwerte; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
31 List<LKommentarP> probeKommentare; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
32 List<LKommentarM> messungKommentare; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
33 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 public LAFParser() { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 this.setDryRun(false); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 this.producer = new LAFProducer(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
37 this.proben = new ArrayList<LProbe>(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 this.messungen = new ArrayList<LMessung>(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 this.orte = new ArrayList<LOrt>(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 this.messwerte = new ArrayList<LMesswert>(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 this.probeKommentare = new ArrayList<LKommentarP>(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 this.messungKommentare = new ArrayList<LKommentarM>(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 public boolean parse(String laf) |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 throws LAFParserException |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 boolean parsed = false; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 while (laf.startsWith("%PROBE%\n")) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 parsed = true; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 int nextPos = laf.indexOf(PROBE_NEXT); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 String single = ""; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 if (nextPos > 0) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 single = laf.substring(0, nextPos + 1); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 laf = laf.substring(nextPos + 1); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
56 readAll(single); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
57 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
58 else { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
59 readAll(laf); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
60 laf = ""; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
61 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
62 if (!this.dryRun) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
63 proben.add(producer.getProbe()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
64 messungen.addAll(producer.getMessungen()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
65 orte.addAll(producer.getOrte()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
66 messwerte.addAll(producer.getMesswerte()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
67 probeKommentare.addAll(producer.getProbenKommentare()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
68 messungKommentare.addAll(producer.getMessungsKommentare()); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
69 producer.reset(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
70 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
71 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
72 if (!parsed) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
73 throw new LAFParserException("No %PROBE% at the begining."); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
74 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
75 return parsed; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
76 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
77 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
78 private void readAll(String content) |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
79 throws LAFParserException |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
80 { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
81 boolean key = false; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
82 boolean value = false; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
83 boolean header = false; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
84 boolean white = false; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
85 boolean string = false; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
86 boolean multiValue = false; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
87 String keyString = ""; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
88 String valueString = ""; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
89 String headerString = ""; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
90 for (int i = 0; i < content.length(); i++) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
91 char current = content.charAt(i); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
92 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
93 if ((current == '"' || (current == ' ' && !string)) && |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
94 value && |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
95 i < content.length() - 1 && |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
96 (content.charAt(i + 1) != '\n' && |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
97 content.charAt(i + 1) != '\r')) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
98 multiValue = true; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
99 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
100 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
101 if (current == '"' && !string) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
102 string = true; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
103 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
104 else if (current == '"' && string) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
105 string = false; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
106 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
107 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
108 if (current == ' ' && !value) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
109 key = false; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
110 white = true; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
111 continue; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
112 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
113 else if (current != ' ' && white) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
114 value = true; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
115 white = false; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
116 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
117 else if (current == '%' && !header && !value) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
118 headerString = ""; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
119 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
120 key = false; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
121 header = true; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
122 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
123 else if ((current == '\n' || current == '\r') && header) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
124 header = false; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
125 key = true; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
126 if (!dryRun) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
127 if (headerString.contains("MESSUNG")) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
128 producer.newMessung(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
129 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
130 if (headerString.contains("ORT")) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
131 producer.newOrt(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
132 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
133 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
134 continue; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
135 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
136 else if (current == '"' && !value) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
137 value = true; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
138 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
139 else if ((current == '\n' || current == '\r') && value && !string) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
140 if (!multiValue && valueString.startsWith("\"")) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
141 valueString = |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
142 valueString.substring(1, valueString.length() - 1); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
143 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
144 value = false; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
145 multiValue = false; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
146 key = true; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
147 if (!this.dryRun) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
148 producer.addData(keyString, valueString); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
149 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
150 keyString = ""; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
151 valueString = ""; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
152 continue; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
153 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
154 else if ((current == '\n' || current == '\r') && key) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
155 throw new LAFParserException("No value for key: " + keyString); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
156 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
157 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
158 if (key) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
159 keyString += current; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
160 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
161 else if (value) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
162 valueString += current; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
163 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
164 else if (header) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
165 headerString += current; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
166 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
167 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
168 if (!dryRun) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
169 this.producer.newMessung(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
170 this.producer.newOrt(); |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
171 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
172 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
173 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
174 public boolean isDryRun() { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
175 return dryRun; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
176 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
177 |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
178 public void setDryRun(boolean dryRun) { |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
179 this.dryRun = dryRun; |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
180 } |
821557a17e5e
First version of the LAF importer.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
181 } |