Mercurial > dive4elements > river
annotate flys-backend/src/main/java/de/intevation/flys/importer/parsers/HYKParser.java @ 1216:f8b5c37f15e4
Fixes for the HYK parser
flys-backend/trunk@2342 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Sun, 17 Jul 2011 10:00:13 +0000 |
parents | 8aef353e54fb |
children | d80997bd94ce |
rev | line source |
---|---|
1215
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.importer.parsers; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
2 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
3 import de.intevation.flys.importer.ImportHYKFlowZoneType; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
4 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
5 import java.io.File; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
6 import java.io.IOException; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
7 import java.io.FileInputStream; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
8 import java.io.InputStreamReader; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
9 import java.io.LineNumberReader; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
10 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
11 import java.util.HashMap; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
12 import java.util.Map; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
13 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
14 import java.math.BigDecimal; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
15 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
16 import org.apache.log4j.Logger; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
17 |
1216
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
18 import de.intevation.flys.utils.FileTools; |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
19 |
1215
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
20 public class HYKParser |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
21 { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
22 private static Logger log = Logger.getLogger(HYKParser.class); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
23 |
1216
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
24 public interface Callback { |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
25 boolean hykAccept(File file); |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
26 void hykParsed(HYKParser parser); |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
27 } // interface Callback |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
28 |
1215
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
29 public static enum State { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
30 LINE_1, LINE_2, LINE_3, LINE_4, LINE_5, LINE_6 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
31 }; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
32 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
33 private static final String ENCODING = "ISO-8859-1"; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
34 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
35 protected Map<String, ImportHYKFlowZoneType> flowZoneTypes; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
36 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
37 public HYKParser() { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
38 flowZoneTypes = new HashMap<String, ImportHYKFlowZoneType>(); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
39 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
40 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
41 public boolean parse(File file) { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
42 |
1216
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
43 boolean debug = log.isDebugEnabled(); |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
44 |
1215
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
45 log.info("Parsing HYK file '" + file + "'"); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
46 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
47 LineNumberReader in = null; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
48 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
49 try { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
50 in = |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
51 new LineNumberReader( |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
52 new InputStreamReader( |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
53 new FileInputStream(file), ENCODING)); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
54 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
55 String line; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
56 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
57 State state = State.LINE_1; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
58 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
59 int numFormations = 0; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
60 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
61 BigDecimal km = null; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
62 BigDecimal top = null; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
63 BigDecimal bottom = null; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
64 BigDecimal distanceVL = null; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
65 BigDecimal distanceHF = null; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
66 BigDecimal distanceVR = null; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
67 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
68 Integer year = null; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
69 int numZones = 0; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
70 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
71 ImportHYKFlowZoneType [] fzts = null; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
72 BigDecimal [] coords = null; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
73 int coordPos = 0; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
74 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
75 while ((line = in.readLine()) != null) { |
1216
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
76 |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
77 if (line.startsWith("*") || line.startsWith("----")) { |
1215
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
78 continue; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
79 } |
1216
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
80 |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
81 line = line.trim(); |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
82 |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
83 if (state != State.LINE_5 && line.length() == 0) { |
1215
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
84 continue; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
85 } |
1216
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
86 |
1215
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
87 String [] parts = line.split("\\s+"); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
88 |
1216
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
89 if (debug) { |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
90 log.debug("'" + line + "': " + state); |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
91 } |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
92 |
1215
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
93 switch (state) { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
94 case LINE_1: |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
95 if (parts.length < 2) { |
1216
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
96 log.error("1: not enough elements in line " + |
1215
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
97 in.getLineNumber()); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
98 return false; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
99 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
100 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
101 if (parts.length == 2) { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
102 // no year given |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
103 year = null; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
104 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
105 else { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
106 try { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
107 year = Integer.valueOf(parts[1]); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
108 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
109 catch (NumberFormatException nfe) { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
110 log.error( |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
111 "year is not an integer in line " + |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
112 in.getLineNumber()); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
113 return false; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
114 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
115 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
116 try { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
117 km = new BigDecimal(parts[0]); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
118 numFormations = Integer.parseInt( |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
119 parts[parts.length > 2 ? 2 : 1]); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
120 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
121 catch (NumberFormatException nfe) { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
122 log.error( |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
123 "parsing number of formations " + |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
124 "or km failed in line " + in.getLineNumber()); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
125 return false; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
126 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
127 // TODO: Store HYKEntry |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
128 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
129 state = State.LINE_2; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
130 break; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
131 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
132 case LINE_2: |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
133 if (parts.length < 3) { |
1216
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
134 log.error("2: not enough elements in line " + |
1215
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
135 in.getLineNumber()); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
136 return false; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
137 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
138 try { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
139 numZones = Integer.parseInt(parts[0]); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
140 bottom = new BigDecimal(parts[1]); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
141 top = new BigDecimal(parts[2]); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
142 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
143 catch (NumberFormatException nfe) { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
144 log.error( |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
145 "parsing num zones, bottom or top height " + |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
146 "failed in line " + in.getLineNumber()); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
147 return false; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
148 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
149 state = State.LINE_3; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
150 break; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
151 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
152 case LINE_3: |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
153 if (parts.length != numZones) { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
154 log.error( |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
155 "number of flow zones mismatches " + |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
156 "in line " + in.getLineNumber()); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
157 return false; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
158 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
159 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
160 fzts = new ImportHYKFlowZoneType[parts.length]; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
161 for (int i = 0; i < fzts.length; ++i) { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
162 fzts[i] = getFlowZoneType(parts[i]); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
163 } |
1216
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
164 coords = new BigDecimal[numZones]; |
1215
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
165 state = State.LINE_4; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
166 break; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
167 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
168 case LINE_4: |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
169 try { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
170 int N = Math.min(parts.length, coords.length); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
171 for (coordPos = 0; coordPos < N; ++coordPos) { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
172 coords[coordPos] = |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
173 new BigDecimal(parts[coordPos]); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
174 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
175 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
176 catch (NumberFormatException nfe) { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
177 log.error("cannot parse number in line " + |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
178 in.getLineNumber()); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
179 return false; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
180 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
181 state = State.LINE_5; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
182 break; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
183 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
184 case LINE_5: |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
185 if (parts.length + coordPos < coords.length) { |
1216
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
186 log.error("5: not enough elements in line " + |
1215
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
187 in.getLineNumber()); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
188 return false; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
189 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
190 try { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
191 for (int i = 0; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
192 i < parts.length && coordPos < coords.length; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
193 ++i, ++coordPos |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
194 ) { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
195 coords[coordPos] = new BigDecimal(parts[i]); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
196 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
197 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
198 catch (NumberFormatException nfe) { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
199 log.error("cannot parse number in line " + |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
200 in.getLineNumber()); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
201 return false; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
202 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
203 state = State.LINE_6; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
204 break; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
205 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
206 case LINE_6: |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
207 if (parts.length < 3) { |
1216
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
208 log.error("6: not enough elements in line " + |
1215
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
209 in.getLineNumber()); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
210 return false; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
211 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
212 try { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
213 distanceVL = new BigDecimal(parts[0]); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
214 distanceHF = new BigDecimal(parts[1]); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
215 distanceVL = new BigDecimal(parts[2]); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
216 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
217 catch (NumberFormatException nfe) { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
218 log.error("cannot parse number in line " + |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
219 in.getLineNumber()); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
220 return false; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
221 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
222 // TODO: now we have enough information |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
223 // to store a formation. |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
224 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
225 // continue with next formation. |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
226 state = --numFormations > 0 // formations left? |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
227 ? State.LINE_2 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
228 : State.LINE_1; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
229 break; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
230 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
231 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
232 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
233 catch (IOException ioe) { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
234 log.error(ioe); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
235 return false; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
236 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
237 finally { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
238 if (in != null) { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
239 try { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
240 in.close(); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
241 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
242 catch (IOException ioe) { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
243 log.error(ioe); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
244 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
245 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
246 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
247 return true; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
248 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
249 |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
250 protected ImportHYKFlowZoneType getFlowZoneType(String name) { |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
251 name = name.toUpperCase(); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
252 ImportHYKFlowZoneType fzt = flowZoneTypes.get(name); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
253 if (fzt == null) { |
1216
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
254 log.info("New flow zone type: " + name); |
1215
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
255 fzt = new ImportHYKFlowZoneType(name); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
256 flowZoneTypes.put(name, fzt); |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
257 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
258 return fzt; |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
259 } |
1216
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
260 |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
261 protected void reset() { |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
262 // TODO: reset per file data structures |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
263 } |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
264 |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
265 public void parseHYKs(File root, final Callback callback) { |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
266 |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
267 FileTools.walkTree(root, new FileTools.FileVisitor() { |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
268 @Override |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
269 public boolean visit(File file) { |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
270 if (file.isFile() && file.canRead() |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
271 && file.getName().toLowerCase().endsWith(".hyk") |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
272 && (callback == null || callback.hykAccept(file))) { |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
273 reset(); |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
274 boolean success = parse(file); |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
275 log.info("parsing " + (success ? "succeeded" : "failed")); |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
276 if (success && callback != null) { |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
277 callback.hykParsed(HYKParser.this); |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
278 } |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
279 } |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
280 return true; |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
281 } |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
282 }); |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
283 } |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
284 |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
285 public static void main(String [] args) { |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
286 |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
287 HYKParser parser = new HYKParser(); |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
288 |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
289 for (String arg: args) { |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
290 parser.parseHYKs(new File(arg), null); |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
291 } |
f8b5c37f15e4
Fixes for the HYK parser
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1215
diff
changeset
|
292 } |
1215
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
293 } |
8aef353e54fb
Initial version of the HYK parser. Not ready, yet.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
294 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |