Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/exports/process/WOutProcessor.java @ 4488:5041105d2edd
Check if response code from GGInA is 200 OK
Only parse the GGInA response if the status code is 200 OK. This improves the
error message if GGInA is not available and shows the real reason instead of a
JDOM error while parsing the response.
author | Björn Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Wed, 14 Nov 2012 10:36:21 +0100 |
parents | a5993b69439b |
children | 547041487266 |
rev | line source |
---|---|
4447
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.exports.process; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
2 |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
3 import org.apache.log4j.Logger; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
4 import org.jfree.data.xy.XYSeries; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
5 import org.w3c.dom.Document; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
6 |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
7 import de.intevation.artifactdatabase.state.ArtifactAndFacet; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
8 import de.intevation.artifacts.CallContext; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
9 import de.intevation.flys.artifacts.model.FacetTypes; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
10 import de.intevation.flys.artifacts.model.WKms; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
11 import de.intevation.flys.exports.StyledSeriesBuilder; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
12 import de.intevation.flys.exports.XYChartGenerator; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
13 import de.intevation.flys.jfree.StyledAreaSeriesCollection; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
14 import de.intevation.flys.jfree.StyledXYSeries; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
15 import de.intevation.flys.utils.DataUtil; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
16 import de.intevation.flys.utils.ThemeUtil; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
17 |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
18 /** |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
19 * @author <a href="mailto:bjoern.ricks@intevation.de">Björn Ricks</a> |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
20 */ |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
21 public class WOutProcessor implements Processor { |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
22 |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
23 private static final Logger logger = |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
24 Logger.getLogger(WOutProcessor.class); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
25 |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
26 @Override |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
27 public void doOut( |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
28 XYChartGenerator generator, |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
29 ArtifactAndFacet aaf, |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
30 Document theme, |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
31 boolean visible, |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
32 int index) |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
33 { |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
34 CallContext context = generator.getCallContext(); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
35 WKms wkms = (WKms) aaf.getData(context); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
36 |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
37 logger.debug("doOut"); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
38 |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
39 XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), theme); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
40 |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
41 StyledSeriesBuilder.addPoints(series, wkms); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
42 generator.addAxisSeries(series, index, visible); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
43 |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
44 // If a "band around the curve shall be drawn, add according area. |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
45 double bandWidth = ThemeUtil.parseBandWidth(theme); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
46 if (bandWidth > 0 ) { |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
47 XYSeries seriesDown = new StyledXYSeries( |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
48 "band " + aaf.getFacetDescription(), false, theme); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
49 XYSeries seriesUp = new StyledXYSeries( |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
50 aaf.getFacetDescription()+"+/-"+bandWidth, false, theme); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
51 StyledSeriesBuilder.addUpperBand(seriesUp, wkms, bandWidth); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
52 StyledSeriesBuilder.addLowerBand(seriesDown, wkms, bandWidth); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
53 |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
54 StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(theme); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
55 area.addSeries(seriesUp); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
56 area.addSeries(seriesDown); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
57 area.setMode(StyledAreaSeriesCollection.FILL_MODE.BETWEEN); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
58 generator.addAreaSeries(area, index, visible); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
59 } |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
60 |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
61 invertAxis(generator, wkms); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
62 } |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
63 |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
64 /** |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
65 * Returns true if facettype is longitutinal_section.w |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
66 */ |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
67 @Override |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
68 public boolean canHandle(String facettype) { |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
69 if (facettype == null) { |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
70 return false; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
71 } |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
72 |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
73 if (facettype.equals(FacetTypes.LONGITUDINAL_W) |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
74 || facettype.equals(FacetTypes.STATIC_WKMS) |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
75 || facettype.equals(FacetTypes.HEIGHTMARKS_POINTS) |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
76 || facettype.equals(FacetTypes.STATIC_WQKMS) |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
77 || facettype.equals(FacetTypes.STATIC_WQKMS_W) |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
78 || facettype.equals(FacetTypes.DISCHARGE_LONGITUDINAL_W)) |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
79 { |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
80 return true; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
81 } |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
82 return false; |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
83 } |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
84 |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
85 /** |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
86 * This method determines - taking JFreeCharts auto x value ordering into |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
87 * account - if the x axis need to be inverted. Waterlines in these charts |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
88 * should decrease. |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
89 * |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
90 * @param wkms The data object that stores the x and y values used for this |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
91 * chart. |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
92 */ |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
93 public void invertAxis(XYChartGenerator generator, WKms wkms) { |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
94 boolean wsUp = wkms.guessWaterIncreasing(); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
95 boolean kmUp = DataUtil.guessWaterIncreasing(wkms.allKms()); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
96 boolean inv = (wsUp && kmUp) || (!wsUp && !kmUp); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
97 |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
98 int size = wkms.size(); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
99 |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
100 if (logger.isDebugEnabled()) { |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
101 logger.debug("(Wkms)Values : " + size); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
102 if (size > 0) { |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
103 logger.debug("Start km: " + wkms.getKm(0)); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
104 logger.debug("End km: " + wkms.getKm(size-1)); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
105 } |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
106 logger.debug("wsUp: " + wsUp); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
107 logger.debug("kmUp: " + kmUp); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
108 logger.debug("inv: " + inv); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
109 } |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
110 generator.setInverted(inv); |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
111 } |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
112 |
a5993b69439b
Add processor to be able to generate curves for WKms values
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff
changeset
|
113 } |