Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java @ 696:708b270dfd30 facets-slt
OutGenerators use now facets to fetch necessary data.
flys-artifacts/branches/facets-slt@2140 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 17 Jun 2011 09:19:43 +0000 |
parents | 45cd58a2a2bb |
children | ddd8b37d5cd3 |
comparison
equal
deleted
inserted
replaced
695:45cd58a2a2bb | 696:708b270dfd30 |
---|---|
21 | 21 |
22 import de.intevation.flys.model.River; | 22 import de.intevation.flys.model.River; |
23 | 23 |
24 import de.intevation.flys.artifacts.FLYSArtifact; | 24 import de.intevation.flys.artifacts.FLYSArtifact; |
25 import de.intevation.flys.artifacts.WINFOArtifact; | 25 import de.intevation.flys.artifacts.WINFOArtifact; |
26 import de.intevation.flys.artifacts.model.FacetTypes; | |
26 import de.intevation.flys.artifacts.model.WQKms; | 27 import de.intevation.flys.artifacts.model.WQKms; |
27 | 28 |
28 | 29 |
29 /** | 30 /** |
30 * An OutGenerator that generates discharge curves. | 31 * An OutGenerator that generates discharge curves. |
31 * | 32 * |
32 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | 33 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
33 */ | 34 */ |
34 public class LongitudinalSectionGenerator extends XYChartGenerator { | 35 public class LongitudinalSectionGenerator |
35 | 36 extends XYChartGenerator |
37 implements FacetTypes | |
38 { | |
36 /** The logger that is used in this generator.*/ | 39 /** The logger that is used in this generator.*/ |
37 private static Logger logger = | 40 private static Logger logger = |
38 Logger.getLogger(LongitudinalSectionGenerator.class); | 41 Logger.getLogger(LongitudinalSectionGenerator.class); |
39 | 42 |
40 | 43 |
189 if (name == null) { | 192 if (name == null) { |
190 logger.error("No facet name for doOut(). No output generated!"); | 193 logger.error("No facet name for doOut(). No output generated!"); |
191 return; | 194 return; |
192 } | 195 } |
193 | 196 |
194 if (name.equals(LONGITUDINAL_SECTION_W)) { | 197 FLYSArtifact flys = (FLYSArtifact) artifact; |
195 doWOut(getWaterlevelData(artifact)); | 198 Facet f = flys.getNativeFacet(facet); |
196 } | 199 |
197 else if (name.equals(LONGITUDINAL_SECTION_Q)) { | 200 if (f == null) { |
198 doQOut(getWaterlevelData(artifact)); | 201 return; |
202 } | |
203 | |
204 if (name.equals(LONGITUDINAL_W)) { | |
205 doWOut((WQKms) f.getData(artifact, context)); | |
206 } | |
207 else if (name.equals(LONGITUDINAL_Q)) { | |
208 doQOut((WQKms) f.getData(artifact, context)); | |
199 } | 209 } |
200 else { | 210 else { |
201 logger.warn("Unknown facet name: " + name); | 211 logger.warn("Unknown facet name: " + name); |
202 return; | 212 return; |
203 } | 213 } |
224 /** | 234 /** |
225 * Process the output for W facets in a longitudinal section curve. | 235 * Process the output for W facets in a longitudinal section curve. |
226 * | 236 * |
227 * @param wqkms An array of WQKms values. | 237 * @param wqkms An array of WQKms values. |
228 */ | 238 */ |
229 protected void doWOut(WQKms[] wqkms) { | 239 protected void doWOut(WQKms wqkms) { |
230 logger.debug("LongitudinalSectionGenerator.doWOut"); | 240 logger.debug("LongitudinalSectionGenerator.doWOut"); |
231 | 241 |
232 int idx = 0; | 242 XYSeries series = new XYSeries(getSeriesName(wqkms, "W")); |
233 for (WQKms tmp: wqkms) { | 243 |
234 XYSeries series = new XYSeries(getSeriesName(tmp, "W")); | 244 double[] target = new double[3]; |
235 | 245 int size = wqkms.size(); |
236 double[] target = new double[3]; | 246 |
237 int size = tmp.size(); | 247 if (logger.isDebugEnabled()) { |
238 | 248 if (wqkms.size() > 0) { |
239 if (logger.isDebugEnabled()) { | 249 logger.debug("Generate series: " + series.getKey()); |
240 if (tmp.size() > 0) { | 250 logger.debug("Start km: " + wqkms.getKms(0)); |
241 logger.debug("Generate series: " + series.getKey()); | 251 logger.debug("End km: " + wqkms.getKms(size-1)); |
242 logger.debug("Start km: " + tmp.getKms(0)); | 252 logger.debug("Values : " + size); |
243 logger.debug("End km: " + tmp.getKms(size-1)); | |
244 logger.debug("Values : " + size); | |
245 } | |
246 } | 253 } |
247 | 254 } |
248 for (int i = 0; i < size; i++) { | 255 |
249 target = tmp.get(i, target); | 256 for (int i = 0; i < size; i++) { |
250 | 257 target = wqkms.get(i, target); |
251 series.add(target[2], target[0]); | 258 |
252 } | 259 series.add(target[2], target[0]); |
253 | 260 } |
254 w.addSeries(series); | 261 |
255 } | 262 w.addSeries(series); |
256 } | 263 } |
257 | 264 |
258 | 265 |
259 /** | 266 /** |
260 * Process the output for Q facets in a longitudinal section curve. | 267 * Process the output for Q facets in a longitudinal section curve. |
261 * | 268 * |
262 * @param wqkms An array of WQKms values. | 269 * @param wqkms An array of WQKms values. |
263 */ | 270 */ |
264 protected void doQOut(WQKms[] wqkms) { | 271 protected void doQOut(WQKms wqkms) { |
265 logger.debug("LongitudinalSectionGenerator.doQOut"); | 272 logger.debug("LongitudinalSectionGenerator.doQOut"); |
266 | 273 |
267 int idx = 0; | 274 XYSeries series = new XYSeries(getSeriesName(wqkms, "Q")); |
268 for (WQKms tmp: wqkms) { | 275 |
269 XYSeries series = new XYSeries(getSeriesName(tmp, "Q")); | 276 double[] target = new double[3]; |
270 | 277 int size = wqkms.size(); |
271 double[] target = new double[3]; | 278 |
272 int size = tmp.size(); | 279 if (logger.isDebugEnabled()) { |
273 | 280 if (wqkms.size() > 0) { |
274 if (logger.isDebugEnabled()) { | 281 logger.debug("Generate series: " + series.getKey()); |
275 if (tmp.size() > 0) { | 282 logger.debug("Start km: " + wqkms.getKms(0)); |
276 logger.debug("Generate series: " + series.getKey()); | 283 logger.debug("End km: " + wqkms.getKms(size-1)); |
277 logger.debug("Start km: " + tmp.getKms(0)); | 284 logger.debug("Values : " + size); |
278 logger.debug("End km: " + tmp.getKms(size-1)); | |
279 logger.debug("Values : " + size); | |
280 } | |
281 } | 285 } |
282 | 286 } |
283 for (int i = 0; i < size; i++) { | 287 |
284 target = tmp.get(i, target); | 288 for (int i = 0; i < size; i++) { |
285 | 289 target = wqkms.get(i, target); |
286 //logger.debug("++ Q Tuple: " + target[2] + " -> " + target[1]); | 290 |
287 series.add(target[2], target[1]); | 291 //logger.debug("++ Q Tuple: " + target[2] + " -> " + target[1]); |
288 } | 292 series.add(target[2], target[1]); |
289 | 293 } |
290 q.addSeries(series); | 294 |
291 } | 295 q.addSeries(series); |
292 } | 296 } |
293 | 297 |
294 | 298 |
295 protected String getSeriesName(WQKms wqkms, String mode) { | 299 protected String getSeriesName(WQKms wqkms, String mode) { |
296 String name = wqkms.getName(); | 300 String name = wqkms.getName(); |