comparison backend/src/main/java/org/dive4elements/river/importer/parsers/WaterlevelDifferencesParser.java @ 6366:cc21c197d204 double-precision

merged changes from default into double-precision branch
author Tom Gottfried <tom.gottfried@intevation.de>
date Tue, 18 Jun 2013 16:05:10 +0200
parents 6c41a4ca2876
children f275aae00c55
comparison
equal deleted inserted replaced
6353:d50348a1506b 6366:cc21c197d204
18 import java.util.regex.Matcher; 18 import java.util.regex.Matcher;
19 import java.util.regex.Pattern; 19 import java.util.regex.Pattern;
20 20
21 import org.apache.log4j.Logger; 21 import org.apache.log4j.Logger;
22 22
23 import org.dive4elements.river.importer.ImportTimeInterval;
23 import org.dive4elements.river.importer.ImportUnit; 24 import org.dive4elements.river.importer.ImportUnit;
24 25
25 import org.dive4elements.river.importer.ImportWst; 26 import org.dive4elements.river.importer.ImportWst;
27 import org.dive4elements.river.importer.ImportWstQRange;
26 import org.dive4elements.river.importer.ImportWstColumn; 28 import org.dive4elements.river.importer.ImportWstColumn;
29 import org.dive4elements.river.importer.ImportWstColumnValue;
27 30
28 31
29 /** 32 /**
30 * Parse WaterlevelDifferences CSV file. 33 * Parse WaterlevelDifferences CSV file.
31 */ 34 */
92 } 95 }
93 96
94 differences.add(current); 97 differences.add(current);
95 } 98 }
96 99
100 // For all differences columns, add a single Q-Range with
101 // 0.
102 for (ImportWstColumn column: columns) {
103 List<ImportWstColumnValue> cValues = column.getColumnValues();
104 column.addColumnQRange(
105 new ImportWstQRange(
106 cValues.get(0).getPosition(),
107 cValues.get(cValues.size() - 1).getPosition(),
108 new BigDecimal(0d))
109 );
110 }
97 current = null; 111 current = null;
98 columns = null; 112 columns = null;
99 } 113 }
100 114
101 115
162 176
163 for (int i = 0; i < cols.length; i++) { 177 for (int i = 0; i < cols.length; i++) {
164 String name = cols[i].replace("\"", ""); 178 String name = cols[i].replace("\"", "");
165 179
166 log.debug("Create new column '" + name + "'"); 180 log.debug("Create new column '" + name + "'");
167 current.getColumn(i).setName(name); 181 ImportWstColumn column = current.getColumn(i);
168 current.getColumn(i).setDescription(name); 182 column.setName(name);
183 column.setDescription(name);
169 184
170 Matcher m = YEARS_IN_COLUMN.matcher(name); 185 Matcher m = YEARS_IN_COLUMN.matcher(name);
171 186
172 if (m.matches()) { 187 if (m.matches()) {
173 String startYear = m.group(1); 188 int startYear = Integer.parseInt(m.group(1));
174 String endYear = m.group(2); 189 int endYear = Integer.parseInt(m.group(2));
175 // TODO create and set ImportTimeInterval 190 ImportTimeInterval time = new ImportTimeInterval(
191 getStartDateFromYear(startYear),
192 getEndDateFromYear(endYear)
193 );
194 column.setTimeInterval(time);
176 } else { 195 } else {
177 log.debug("No time interval in column header found: " + name); 196 log.debug("No time interval in column header found: " + name);
178 } 197 }
179 } 198 }
180 } 199 }
181 200
182 201
202 /** Handle one line of data, add one value for all columns. */
183 private void handleDataLine(String line) { 203 private void handleDataLine(String line) {
184 String[] cols = line.split(SEPERATOR_CHAR); 204 String[] cols = line.split(SEPERATOR_CHAR);
185 205
186 if (cols == null || cols.length < 2) { 206 if (cols == null || cols.length < 2) {
187 log.warn("skip invalid waterlevel-diff line: '" + line + "'"); 207 log.warn("skip invalid waterlevel-diff line: '" + line + "'");

http://dive4elements.wald.intevation.org