annotate flys-backend/src/main/java/de/intevation/flys/importer/parsers/W80Parser.java @ 4777:34398f424cfd

W80Parser: Return null if no year set to behave like other parsers and avoid building a (wrong) TimeSpan object.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Mon, 07 Jan 2013 11:55:46 +0100
parents 92a08725bc63
children 7dd5baca4f53
rev   line source
4728
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.importer.parsers;
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
2
4735
94b39073f0f7 Moved EpsilonComparator to utils package becaus its not only useful for TIM parsing. Used EpsilonComparator in DA60 and DA66 case. Maybe TODO: Use in PRF, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4733
diff changeset
3 import de.intevation.artifacts.common.utils.FileTools;
94b39073f0f7 Moved EpsilonComparator to utils package becaus its not only useful for TIM parsing. Used EpsilonComparator in DA60 and DA66 case. Maybe TODO: Use in PRF, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4733
diff changeset
4
94b39073f0f7 Moved EpsilonComparator to utils package becaus its not only useful for TIM parsing. Used EpsilonComparator in DA60 and DA66 case. Maybe TODO: Use in PRF, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4733
diff changeset
5 import de.intevation.flys.importer.XY;
94b39073f0f7 Moved EpsilonComparator to utils package becaus its not only useful for TIM parsing. Used EpsilonComparator in DA60 and DA66 case. Maybe TODO: Use in PRF, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4733
diff changeset
6
4747
2a6d64a415e4 W80Parser: Put infrastructure for an anchor point in place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
7 import de.intevation.flys.importer.parsers.tim.Coordinate;
4735
94b39073f0f7 Moved EpsilonComparator to utils package becaus its not only useful for TIM parsing. Used EpsilonComparator in DA60 and DA66 case. Maybe TODO: Use in PRF, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4733
diff changeset
8
4762
c6654a19b00f W80Parser: Use DateGuesser to set a date.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4761
diff changeset
9 import de.intevation.flys.utils.DateGuesser;
4768
99f9e371371b Move distance calculation to Coordinate class. Use inheritance instead of composition in Anchor class. Made Anchor class static. Use epsilon equal comparision when checking for same station: Boy, do you ever learn that sharp equal comparison of doubles is not a clever idea!?
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4762
diff changeset
10 import de.intevation.flys.utils.EpsilonComparator;
4762
c6654a19b00f W80Parser: Use DateGuesser to set a date.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4761
diff changeset
11
4735
94b39073f0f7 Moved EpsilonComparator to utils package becaus its not only useful for TIM parsing. Used EpsilonComparator in DA60 and DA66 case. Maybe TODO: Use in PRF, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4733
diff changeset
12 import java.io.File;
94b39073f0f7 Moved EpsilonComparator to utils package becaus its not only useful for TIM parsing. Used EpsilonComparator in DA60 and DA66 case. Maybe TODO: Use in PRF, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4733
diff changeset
13 import java.io.IOException;
94b39073f0f7 Moved EpsilonComparator to utils package becaus its not only useful for TIM parsing. Used EpsilonComparator in DA60 and DA66 case. Maybe TODO: Use in PRF, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4733
diff changeset
14
4728
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
15 import java.util.ArrayList;
4761
ab87408bb0d3 W80Parser: Added field to store a date.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4760
diff changeset
16 import java.util.Calendar;
ab87408bb0d3 W80Parser: Added field to store a date.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4760
diff changeset
17 import java.util.Date;
4735
94b39073f0f7 Moved EpsilonComparator to utils package becaus its not only useful for TIM parsing. Used EpsilonComparator in DA60 and DA66 case. Maybe TODO: Use in PRF, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4733
diff changeset
18 import java.util.List;
4728
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
19 import java.util.Map;
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
20 import java.util.TreeMap;
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
21
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
22 import org.apache.log4j.Logger;
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
23
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
24
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
25 /**
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
26 * To create cross-sections, generate: Map<double,list<xy>> from files
4755
ba8c2147b4ff W80Parser: Correct c&p stuff in comments (da66->w80).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4751
diff changeset
27 * in w80 format.
4728
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
28 */
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
29 public class W80Parser extends LineParser implements CrossSectionParser
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
30 {
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
31 /** Private logger. */
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
32 private static Logger logger = Logger.getLogger(W80Parser.class);
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
33
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
34
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
35 /** The current line to which add points. */
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
36 private List<XY> currentLine;
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
37
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
38
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
39 /** Data collected so far, last element will be currentLine. */
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
40 protected Map<Double, List<XY>> data;
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
41
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
42
4747
2a6d64a415e4 W80Parser: Put infrastructure for an anchor point in place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
43 /** Anchor to project to. */
4768
99f9e371371b Move distance calculation to Coordinate class. Use inheritance instead of composition in Anchor class. Made Anchor class static. Use epsilon equal comparision when checking for same station: Boy, do you ever learn that sharp equal comparison of doubles is not a clever idea!?
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4762
diff changeset
44 private static class Anchor extends Coordinate {
99f9e371371b Move distance calculation to Coordinate class. Use inheritance instead of composition in Anchor class. Made Anchor class static. Use epsilon equal comparision when checking for same station: Boy, do you ever learn that sharp equal comparison of doubles is not a clever idea!?
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4762
diff changeset
45
99f9e371371b Move distance calculation to Coordinate class. Use inheritance instead of composition in Anchor class. Made Anchor class static. Use epsilon equal comparision when checking for same station: Boy, do you ever learn that sharp equal comparison of doubles is not a clever idea!?
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4762
diff changeset
46 private static final double EPSILON = 1e-5;
99f9e371371b Move distance calculation to Coordinate class. Use inheritance instead of composition in Anchor class. Made Anchor class static. Use epsilon equal comparision when checking for same station: Boy, do you ever learn that sharp equal comparison of doubles is not a clever idea!?
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4762
diff changeset
47
4747
2a6d64a415e4 W80Parser: Put infrastructure for an anchor point in place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
48 private double station;
4768
99f9e371371b Move distance calculation to Coordinate class. Use inheritance instead of composition in Anchor class. Made Anchor class static. Use epsilon equal comparision when checking for same station: Boy, do you ever learn that sharp equal comparison of doubles is not a clever idea!?
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4762
diff changeset
49
99f9e371371b Move distance calculation to Coordinate class. Use inheritance instead of composition in Anchor class. Made Anchor class static. Use epsilon equal comparision when checking for same station: Boy, do you ever learn that sharp equal comparison of doubles is not a clever idea!?
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4762
diff changeset
50 public Anchor(double x, double y, double z, double station) {
99f9e371371b Move distance calculation to Coordinate class. Use inheritance instead of composition in Anchor class. Made Anchor class static. Use epsilon equal comparision when checking for same station: Boy, do you ever learn that sharp equal comparison of doubles is not a clever idea!?
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4762
diff changeset
51 super(x, y, z);
4747
2a6d64a415e4 W80Parser: Put infrastructure for an anchor point in place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
52 this.station = station;
2a6d64a415e4 W80Parser: Put infrastructure for an anchor point in place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
53 }
4768
99f9e371371b Move distance calculation to Coordinate class. Use inheritance instead of composition in Anchor class. Made Anchor class static. Use epsilon equal comparision when checking for same station: Boy, do you ever learn that sharp equal comparison of doubles is not a clever idea!?
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4762
diff changeset
54
99f9e371371b Move distance calculation to Coordinate class. Use inheritance instead of composition in Anchor class. Made Anchor class static. Use epsilon equal comparision when checking for same station: Boy, do you ever learn that sharp equal comparison of doubles is not a clever idea!?
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4762
diff changeset
55 public boolean sameStation(double station) {
99f9e371371b Move distance calculation to Coordinate class. Use inheritance instead of composition in Anchor class. Made Anchor class static. Use epsilon equal comparision when checking for same station: Boy, do you ever learn that sharp equal comparison of doubles is not a clever idea!?
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4762
diff changeset
56 return Math.abs(this.station - station) < EPSILON;
4747
2a6d64a415e4 W80Parser: Put infrastructure for an anchor point in place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
57 }
2a6d64a415e4 W80Parser: Put infrastructure for an anchor point in place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
58 }
2a6d64a415e4 W80Parser: Put infrastructure for an anchor point in place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
59
2a6d64a415e4 W80Parser: Put infrastructure for an anchor point in place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
60
4760
69bb2996ed19 W80Parser: Doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4759
diff changeset
61 /** Reference point for simple projection. */
4747
2a6d64a415e4 W80Parser: Put infrastructure for an anchor point in place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
62 private Anchor anchor;
2a6d64a415e4 W80Parser: Put infrastructure for an anchor point in place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
63
2a6d64a415e4 W80Parser: Put infrastructure for an anchor point in place.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
64
4761
ab87408bb0d3 W80Parser: Added field to store a date.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4760
diff changeset
65 /** Measurement date of anchor as listed in w80 file. */
ab87408bb0d3 W80Parser: Added field to store a date.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4760
diff changeset
66 private Date anchorDate;
ab87408bb0d3 W80Parser: Added field to store a date.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4760
diff changeset
67
ab87408bb0d3 W80Parser: Added field to store a date.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4760
diff changeset
68
4728
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
69 /** Trivial constructor. */
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
70 public W80Parser() {
4735
94b39073f0f7 Moved EpsilonComparator to utils package becaus its not only useful for TIM parsing. Used EpsilonComparator in DA60 and DA66 case. Maybe TODO: Use in PRF, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4733
diff changeset
71 data = new TreeMap<Double, List<XY>>(EpsilonComparator.CMP);
4728
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
72 }
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
73
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
74
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
75 /** Get the description of the cross section parsed. */
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
76 @Override
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
77 public String getDescription() {
4729
0df1cac6c4b5 Removed removeExtension implementations, which have been moved to FileTools,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4728
diff changeset
78 return FileTools.removeExtension(getFileName());
4728
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
79 }
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
80
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
81
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
82 /** Get the year of this cross sections measurement. */
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
83 @Override
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
84 public Integer getYear() {
4769
92a08725bc63 Do not die in W80 parser id invalid date is given.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4768
diff changeset
85 if (anchorDate == null) {
4777
34398f424cfd W80Parser: Return null if no year set to behave like other parsers and avoid
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4769
diff changeset
86 return null;
4769
92a08725bc63 Do not die in W80 parser id invalid date is given.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4768
diff changeset
87 }
4762
c6654a19b00f W80Parser: Use DateGuesser to set a date.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4761
diff changeset
88 Calendar dateCalendar = Calendar.getInstance();
c6654a19b00f W80Parser: Use DateGuesser to set a date.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4761
diff changeset
89 dateCalendar.setTime(anchorDate);
c6654a19b00f W80Parser: Use DateGuesser to set a date.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4761
diff changeset
90 return dateCalendar.get(Calendar.YEAR);
4728
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
91 }
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
92
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
93
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
94 /**
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
95 * Return the data parsed.
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
96 * @return map of stations (km) to list of points.
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
97 */
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
98 @Override
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
99 public Map<Double, List<XY>> getData() {
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
100 return data;
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
101 }
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
102
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
103
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
104 public void parseW80s(File root, final Callback callback) {
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
105
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
106 // TODO use the removeExtension/guess description and date.
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
107 FileTools.walkTree(root, new FileTools.FileVisitor() {
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
108 @Override
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
109 public boolean visit(File file) {
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
110 if (file.isFile() && file.canRead()
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
111 && file.getName().toLowerCase().endsWith(".w80")
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
112 && (callback == null || callback.accept(file))) {
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
113 reset();
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
114 try {
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
115 parse(file);
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
116 logger.info("parsing done");
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
117 if (callback != null) {
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
118 callback.parsed(W80Parser.this);
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
119 }
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
120 }
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
121 catch (IOException ioe) {
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
122 logger.error("IOException while parsing file");
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
123 return false;
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
124 }
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
125 }
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
126 return true;
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
127 }
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
128 });
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
129 }
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
130
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
131
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
132 /** Called before consuming first line of file. */
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
133 public void reset() {
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
134 data.clear();
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
135 currentLine = new ArrayList<XY>();
4749
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
136 anchor = null;
4761
ab87408bb0d3 W80Parser: Added field to store a date.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4760
diff changeset
137 anchorDate = null;
4749
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
138 }
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
139
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
140
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
141 /**
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
142 * Get the Index of the last cross-section lines point.
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
143 * @return last points index, -1 if not available.
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
144 */
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
145 private int lastPointIdx() {
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
146 if (currentLine == null || currentLine.isEmpty()) {
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
147 return -1;
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
148 }
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
149 XY lastPoint = this.currentLine.get(currentLine.size()-1);
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
150 return lastPoint.getIndex();
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
151 }
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
152
4757
e965593eee57 W80Parser: Whitespace-cosmetics and comment.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4756
diff changeset
153
4749
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
154 /**
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
155 * Add a Point (YZ,Index) to the current cross section line.
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
156 * @param y The y coordinate of new point.
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
157 * @param z The z coordinate of new point.
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
158 * @param idx Ignored, the parameter of new point.
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
159 * @return true if point could been added, false otherwise (e.g. not
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
160 * parsable y or z values.
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
161 */
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
162 private boolean addPoint(double gkr, double gkh, double height, String idx) {
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
163 // Calculate distance between this and anchor-point.
4768
99f9e371371b Move distance calculation to Coordinate class. Use inheritance instead of composition in Anchor class. Made Anchor class static. Use epsilon equal comparision when checking for same station: Boy, do you ever learn that sharp equal comparison of doubles is not a clever idea!?
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4762
diff changeset
164 double d = anchor.distance(gkr, gkh);
4749
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
165
4751
ee6c0f246b28 W80Parser: Added TODO/comment.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4750
diff changeset
166 // TODO: Scale to have "x==0" e.g. at axis of river.
ee6c0f246b28 W80Parser: Added TODO/comment.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4750
diff changeset
167 // TODO: Handle "not straight lines."
ee6c0f246b28 W80Parser: Added TODO/comment.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4750
diff changeset
168
4749
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
169 // We ignore idx, and increment instead.
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
170 int index;
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
171 int lastPointIdx = lastPointIdx();
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
172 if (lastPointIdx <= 0) {
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
173 index = 1;
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
174 } else {
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
175 index = lastPointIdx + 1;
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
176 }
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
177
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
178 currentLine.add(new XY(d, height/1000d, index));
3028037c6293 W80Parser: addPoint and lastIdx functions to add a point and find last points index.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4747
diff changeset
179 return true;
4728
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
180 }
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
181
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
182
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
183 /**
4755
ba8c2147b4ff W80Parser: Correct c&p stuff in comments (da66->w80).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4751
diff changeset
184 * Called for each line. Try to extract info from a w80 line.
4728
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
185 */
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
186 @Override
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
187 protected void handleLine(int lineNum, String line) {
4757
e965593eee57 W80Parser: Whitespace-cosmetics and comment.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4756
diff changeset
188 // The 'shore' field shows which side of the river the shore is measured.
e965593eee57 W80Parser: Whitespace-cosmetics and comment.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4756
diff changeset
189 // Therefore, the points have to be added in the correct order (also
e965593eee57 W80Parser: Whitespace-cosmetics and comment.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4756
diff changeset
190 // because later distances are calculated which cannot be
e965593eee57 W80Parser: Whitespace-cosmetics and comment.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4756
diff changeset
191 // negative.
4728
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
192 String pointId = line.substring(0,20);
4758
4db3a1509e90 W80Parser: Respect (ignore) 'shore' field of w80 files.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4757
diff changeset
193 String station = line.substring(9,15);
4db3a1509e90 W80Parser: Respect (ignore) 'shore' field of w80 files.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4757
diff changeset
194 String shore = line.substring(15,17);
4751
ee6c0f246b28 W80Parser: Added TODO/comment.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4750
diff changeset
195 // TODO: There is 'station' and a 'shore'-code behind.
ee6c0f246b28 W80Parser: Added TODO/comment.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4750
diff changeset
196 // 1 = left, 2 = right. none = middle
4758
4db3a1509e90 W80Parser: Respect (ignore) 'shore' field of w80 files.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4757
diff changeset
197 String pointIndex = line.substring(17,21);
4750
60398ab6129a W80Parser: Actually add points while parsing w80 file.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4749
diff changeset
198 // For GK, first seven digits are of interest.
4728
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
199 String gkRight = line.substring(20,30);
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
200 String gkHigh = line.substring(30,40);
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
201 String date = line.substring(40,46);
4759
35f4ece9562e W80Parser: Comment code that is not (yet?) used by FLYS.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4758
diff changeset
202 /* Fields not (yet?) of interest for FLYS
4728
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
203 String locType = line.substring(46,47);
4759
35f4ece9562e W80Parser: Comment code that is not (yet?) used by FLYS.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4758
diff changeset
204 */
4728
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
205 String height = line.substring(47,54);
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
206 String dateH = line.substring(54,60);
4759
35f4ece9562e W80Parser: Comment code that is not (yet?) used by FLYS.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4758
diff changeset
207 /* Fields not (yet?) of interest for FLYS
4728
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
208 String typeH = line.substring(60,61);
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
209 String kindH = line.substring(61,64);
4759
35f4ece9562e W80Parser: Comment code that is not (yet?) used by FLYS.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4758
diff changeset
210 */
4728
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
211 String dateDec = line.substring(64,70);
4759
35f4ece9562e W80Parser: Comment code that is not (yet?) used by FLYS.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4758
diff changeset
212 /* Fields not (yet?) of interest for FLYS
4728
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
213 String note = line.substring(70,78);
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
214 String actual = line.substring(78);
4759
35f4ece9562e W80Parser: Comment code that is not (yet?) used by FLYS.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4758
diff changeset
215 */
35f4ece9562e W80Parser: Comment code that is not (yet?) used by FLYS.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4758
diff changeset
216
4750
60398ab6129a W80Parser: Actually add points while parsing w80 file.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4749
diff changeset
217 double stationKm = Double.parseDouble(station) / 1000d;
60398ab6129a W80Parser: Actually add points while parsing w80 file.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4749
diff changeset
218 double gkRightKm = Double.parseDouble(gkRight.substring(0,7));
60398ab6129a W80Parser: Actually add points while parsing w80 file.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4749
diff changeset
219 double gkHighKm = Double.parseDouble(gkHigh.substring(0,7));
60398ab6129a W80Parser: Actually add points while parsing w80 file.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4749
diff changeset
220 double heightM = Double.parseDouble(height);
60398ab6129a W80Parser: Actually add points while parsing w80 file.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4749
diff changeset
221
60398ab6129a W80Parser: Actually add points while parsing w80 file.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4749
diff changeset
222 // New (or first) line.
4768
99f9e371371b Move distance calculation to Coordinate class. Use inheritance instead of composition in Anchor class. Made Anchor class static. Use epsilon equal comparision when checking for same station: Boy, do you ever learn that sharp equal comparison of doubles is not a clever idea!?
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4762
diff changeset
223 if (anchor == null || !anchor.sameStation(stationKm)) {
99f9e371371b Move distance calculation to Coordinate class. Use inheritance instead of composition in Anchor class. Made Anchor class static. Use epsilon equal comparision when checking for same station: Boy, do you ever learn that sharp equal comparison of doubles is not a clever idea!?
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4762
diff changeset
224 anchor = new Anchor(gkRightKm, gkHighKm, heightM, stationKm);
4750
60398ab6129a W80Parser: Actually add points while parsing w80 file.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4749
diff changeset
225 currentLine = new ArrayList<XY>();
60398ab6129a W80Parser: Actually add points while parsing w80 file.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4749
diff changeset
226 data.put(stationKm, currentLine);
60398ab6129a W80Parser: Actually add points while parsing w80 file.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4749
diff changeset
227 currentLine.add(new XY(0d, heightM,0));
4769
92a08725bc63 Do not die in W80 parser id invalid date is given.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4768
diff changeset
228 try {
92a08725bc63 Do not die in W80 parser id invalid date is given.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4768
diff changeset
229 anchorDate = DateGuesser.guessDate(date);
92a08725bc63 Do not die in W80 parser id invalid date is given.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4768
diff changeset
230 }
92a08725bc63 Do not die in W80 parser id invalid date is given.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4768
diff changeset
231 catch (IllegalArgumentException iae) {
92a08725bc63 Do not die in W80 parser id invalid date is given.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4768
diff changeset
232 logger.warn("W80: Invalid date '" + date + "'.");
92a08725bc63 Do not die in W80 parser id invalid date is given.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4768
diff changeset
233 }
4750
60398ab6129a W80Parser: Actually add points while parsing w80 file.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4749
diff changeset
234 }
60398ab6129a W80Parser: Actually add points while parsing w80 file.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4749
diff changeset
235 else {
60398ab6129a W80Parser: Actually add points while parsing w80 file.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4749
diff changeset
236 addPoint(gkRightKm, gkHighKm, heightM, pointIndex);
60398ab6129a W80Parser: Actually add points while parsing w80 file.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4749
diff changeset
237 }
4728
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
238 }
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
239
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
240
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
241 /** Called when file is fully consumed. */
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
242 @Override
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
243 protected void finish() {
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
244 logger.info("Parsed " + data.size() + " lines");
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
245 }
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
246
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
247
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
248 /** Parses files given as arguments. */
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
249 public static void main(String [] args) {
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
250
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
251 W80Parser parser = new W80Parser();
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
252
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
253 logger.warn("Start parsing files.");
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
254 for (String arg: args) {
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
255 parser.parseW80s(new File(arg), null);
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
256 logger.warn("Parsing a file.");
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
257 }
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
258 logger.error("Finished parsing files.");
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
259 }
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
260 }
ccae8b43e527 Initial empty version of W80Parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
261 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org