Mercurial > dive4elements > river
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 + "'"); |