annotate flys-backend/src/main/java/de/intevation/flys/importer/PRFParser.java @ 1198:661a9304f2f5

PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now. flys-backend/trunk@2300 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 07 Jul 2011 14:09:54 +0000
parents ce3dacc6ea92
children cc8f770796cb
rev   line source
1196
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.importer;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
2
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
3 import java.util.Map;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
4 import java.util.Stack;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
5 import java.util.TreeMap;
1198
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
6 import java.util.List;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
7 import java.util.ArrayList;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
8 import java.util.Collections;
1196
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
9
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10 import java.util.regex.Pattern;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
11 import java.util.regex.Matcher;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13 import java.io.File;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14 import java.io.InputStreamReader;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
15 import java.io.LineNumberReader;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16 import java.io.FileInputStream;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
17 import java.io.IOException;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
18
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
19 import org.apache.log4j.Logger;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
20
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
21 public class PRFParser
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
22 {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23 private static Logger log = Logger.getLogger(PRFParser.class);
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
24
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25 public static final String ENCODING =
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26 System.getProperty("flys.backend.prf.encoding", "ISO-8859-1");
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
27
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
28 public static final Pattern DATA_PATTERN =
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
29 Pattern.compile(
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
30 "\\((\\d+)x\\s*,\\s*(\\d+)\\(" +
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
31 "\\s*f(\\d+)\\.(\\d+)\\s*,\\s*f(\\d+)\\.(\\d+)\\s*\\)?\\)?");
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
32
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
33 public static final Pattern KM_PATTERN =
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34 Pattern.compile("\\((\\d+)x\\s*,\\s*f(\\d+)\\.(\\d+)\\s*\\)?");
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
35
1198
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
36 public static final double X_EPSILON = 1e-4;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
37
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
38 public static final class XY
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
39 implements Comparable<XY>
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
40 {
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
41 protected double x;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
42 protected double y;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
43 protected int index;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
44
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
45 public XY() {
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
46 }
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
47
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
48 public XY(double x, double y, int index) {
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
49 this.x = x;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
50 this.y = y;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
51 this.index = index;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
52 }
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
53
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
54 @Override
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
55 public int compareTo(XY other) {
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
56 if (x + X_EPSILON < other.x) return -1;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
57 if (x > other.x + X_EPSILON) return +1;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
58 if (index < other.index) return -1;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
59 if (index > other.index) return +1;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
60 return 0;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
61 }
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
62 } // class XY
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
63
1196
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
64 public static class DataFormat {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
65
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
66 protected int deleteChars;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
67 protected int maxRepetitions;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
68 protected int firstIntegerPlaces;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
69 protected int firstFractionPlaces;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
70 protected int secondIntegerPlaces;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
71 protected int secondFractionPlaces;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
72
1198
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
73 protected double firstShift;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
74 protected double secondShift;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
75
1196
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
76 public DataFormat() {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
77 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
78
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
79 public DataFormat(Matcher m) {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
80 deleteChars = Integer.parseInt(m.group(1));
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
81 maxRepetitions = Integer.parseInt(m.group(2));
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
82 firstIntegerPlaces = Integer.parseInt(m.group(3));
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
83 firstFractionPlaces = Integer.parseInt(m.group(4));
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
84 secondIntegerPlaces = Integer.parseInt(m.group(5));
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
85 secondFractionPlaces = Integer.parseInt(m.group(6));
1198
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
86
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
87 firstShift = Math.pow(10, firstFractionPlaces);
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
88 secondShift = Math.pow(10, secondFractionPlaces);
1196
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
89 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
90
1198
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
91 public int extractData(String line, List<XY> kmData) {
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
92 int L = line.length();
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
93 if (L <= deleteChars) {
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
94 return -1;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
95 }
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
96
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
97 int pos = deleteChars;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
98
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
99 boolean debug = log.isDebugEnabled();
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
100
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
101
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
102 int rep = 0;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
103 for (;rep < maxRepetitions; ++rep) {
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
104 if (pos >= L || pos + firstIntegerPlaces >= L) {
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
105 break;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
106 }
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
107 String first = line.substring(
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
108 pos, pos + firstIntegerPlaces);
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
109
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
110 String second = line.substring(
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
111 pos + firstIntegerPlaces,
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
112 Math.min(L, pos+firstIntegerPlaces+secondIntegerPlaces));
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
113
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
114 double x, y;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
115 try {
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
116 x = Double.parseDouble(first);
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
117 y = Double.parseDouble(second);
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
118 }
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
119 catch (NumberFormatException nfe) {
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
120 // broken line -> substract from dataset skip
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
121 return -1;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
122 }
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
123
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
124 if (first.indexOf('.') < 0) {
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
125 x /= firstShift;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
126 }
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
127
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
128 if (firstFractionPlaces > 0) {
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
129 x = (int)(x*firstShift)/firstShift;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
130 }
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
131
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
132 if (second.indexOf('.') < 0) {
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
133 y /= secondShift;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
134 }
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
135
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
136 if (secondFractionPlaces > 0) {
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
137 y = (int)(y*secondShift)/secondShift;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
138 }
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
139
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
140 kmData.add(new XY(x, y, kmData.size()));
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
141
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
142 pos += firstIntegerPlaces + secondIntegerPlaces;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
143 }
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
144
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
145 return rep == maxRepetitions ? 1 : 0;
1196
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
146 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
147 } // class DataFormat
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
148
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
149 public static class KMFormat {
1198
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
150
1196
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
151 protected int deleteChars;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
152 protected int integerPlaces;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
153 protected int fractionPlaces;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
154
1197
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
155 protected double shift;
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
156
1196
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
157 public KMFormat() {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
158 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
159
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
160 public KMFormat(Matcher m) {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
161 deleteChars = Integer.parseInt(m.group(1));
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
162 integerPlaces = Integer.parseInt(m.group(2));
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
163 fractionPlaces = Integer.parseInt(m.group(3));
1197
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
164
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
165 shift = Math.pow(10, fractionPlaces);
1196
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
166 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
167
1197
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
168 public double extractKm(String line) throws NumberFormatException {
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
169
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
170 if (line.length() <= deleteChars) {
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
171 throw new NumberFormatException("line too short");
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
172 }
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
173
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
174 String kmS =
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
175 line.substring(deleteChars, deleteChars+integerPlaces);
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
176
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
177 double km = Double.parseDouble(kmS.trim());
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
178
1198
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
179 if (kmS.indexOf('.') < 0) {
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
180 km /= shift;
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
181 }
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
182
1197
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
183 return fractionPlaces > 0
1198
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
184 ? ((int)(km*shift))/shift
1197
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
185 : km;
1196
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
186 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
187 } // class KMFormat
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
188
1198
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
189 protected Map<Double, List<XY>> data;
1196
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
190
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
191 public PRFParser() {
1198
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
192 data = new TreeMap<Double, List<XY>>();
1196
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
193 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
194
1198
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
195 protected void sortLists() {
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
196 for (List<XY> xy: data.values()) {
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
197 Collections.sort(xy);
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
198 }
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
199 }
1196
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
200
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
201 public boolean parse(File file) {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
202
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
203 if (!(file.isFile() && file.canRead())) {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
204 log.warn("cannot open file '" + file + "'");
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
205 return false;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
206 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
207
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
208 log.info("parsing PRF file: '" + file + "'");
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
209
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
210 LineNumberReader in = null;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
211
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
212 try {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
213 in =
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
214 new LineNumberReader(
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
215 new InputStreamReader(
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
216 new FileInputStream(file), ENCODING));
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
217
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
218 String line = in.readLine();
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
219
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
220 if (line == null || (line = line.trim()).length() == 0) {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
221 log.warn("file is empty.");
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
222 return false;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
223 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
224
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
225 Matcher m = DATA_PATTERN.matcher(line);
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
226
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
227 if (!m.matches()) {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
228 log.warn("First line does not look like a PRF data pattern.");
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
229 return false;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
230 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
231
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
232 DataFormat dataFormat = new DataFormat(m);
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
233
1197
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
234 if ((line = in.readLine()) == null
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
235 || (line = line.trim()).length() == 0) {
1196
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
236 log.warn("premature EOF. Expected integer in line 2");
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
237 return false;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
238 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
239
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
240 try {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
241 if (Integer.parseInt(line) != dataFormat.maxRepetitions) {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
242 log.warn("Expected " +
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
243 dataFormat.maxRepetitions + " in line 2");
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
244 return false;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
245 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
246 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
247 catch (NumberFormatException nfe) {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
248 log.warn("invalid integer in line 2", nfe);
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
249 return false;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
250 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
251
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
252 if ((line = in.readLine()) == null) {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
253 log.warn(
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
254 "premature EOF. Expected pattern for km extraction");
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
255 return false;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
256 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
257
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
258 m = KM_PATTERN.matcher(line);
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
259
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
260 if (!m.matches()) {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
261 log.warn(
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
262 "line 4 does not look like a PRF km extraction pattern.");
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
263 return false;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
264 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
265
1197
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
266 KMFormat kmFormat = new KMFormat(m);
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
267
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
268 if ((line = in.readLine()) == null
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
269 || (line = line.trim()).length() == 0) {
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
270 log.warn("premature EOF. Expected skip row count.");
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
271 return false;
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
272 }
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
273
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
274 int lineSkipCount;
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
275 try {
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
276 if ((lineSkipCount = Integer.parseInt(line)) < 0) {
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
277 throw new IllegalArgumentException(lineSkipCount + " < 0");
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
278 }
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
279 }
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
280 catch (NumberFormatException nfe) {
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
281 log.warn(
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
282 "line 5 is not an positive integer.");
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
283 return false;
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
284 }
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
285
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
286 int skip = lineSkipCount;
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
287
1196
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
288 while ((line = in.readLine()) != null) {
1197
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
289 if (skip > 0) {
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
290 --skip;
1196
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
291 continue;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
292 }
1197
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
293 double km;
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
294 try {
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
295 km = kmFormat.extractKm(line);
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
296 }
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
297 catch (NumberFormatException iae) {
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
298 log.warn("cannot extract km in line + " + in.getLineNumber());
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
299 return false;
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
300 }
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
301
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
302 Double station = Double.valueOf(km);
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
303
1198
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
304 List<XY> kmData = data.get(station);
1197
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
305
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
306 if (kmData == null) {
1198
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
307 //log.debug("found new km: " + station);
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
308 kmData = new ArrayList<XY>();
1197
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
309 data.put(station, kmData);
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
310 }
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
311
1198
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
312 int c = dataFormat.extractData(line, kmData);
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
313 if (c < 1) {
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
314 skip = lineSkipCount + c;
1197
ce3dacc6ea92 PRFParser: extract km from lines. TODO: extract data.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1196
diff changeset
315 }
1196
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
316 }
1198
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
317
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
318 // sort all the lists by x and index
661a9304f2f5 PRFParser: Extracted the data. All BfG PRFs are parsed correctly, now.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1197
diff changeset
319 sortLists();
1196
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
320 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
321 catch (IOException ioe) {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
322 log.error(ioe);
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
323 return false;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
324 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
325 finally {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
326 if (in != null) {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
327 try {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
328 in.close();
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
329 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
330 catch (IOException ioe) {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
331 log.error(ioe);
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
332 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
333 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
334 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
335
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
336 return true;
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
337 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
338
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
339 public void reset() {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
340 data.clear();
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
341 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
342
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
343 public static void parsePRFs(File root) {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
344
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
345 PRFParser parser = new PRFParser();
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
346
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
347 Stack<File> stack = new Stack<File>();
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
348 stack.push(root);
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
349
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
350 while (!stack.empty()) {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
351 File file = stack.pop();
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
352 if (file.isDirectory()) {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
353 File [] files = file.listFiles();
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
354 if (files != null) {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
355 for (File f: files) {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
356 stack.push(f);
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
357 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
358 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
359 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
360 else if (file.isFile()
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
361 && file.getName().toLowerCase().endsWith(".prf")
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
362 ) {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
363 parser.reset();
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
364 boolean success = parser.parse(file);
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
365 log.info("parsing " + (success ? "succeeded" : "failed"));
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
366 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
367 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
368 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
369
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
370 public static void main(String [] args) {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
371
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
372 for (String arg: args) {
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
373 parsePRFs(new File(arg));
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
374 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
375 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
376 }
46127af605ba Added parser for PRF files. TODO: Extract data and km.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
377 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org