comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java @ 3818:dc18457b1cef

merged flys-artifacts/pre2.7-2012-03-16
author Thomas Arendsen Hein <thomas@intevation.de>
date Fri, 28 Sep 2012 12:14:59 +0200
parents 1d7fb2cabfc7
children 9ea3ac23bd9d
comparison
equal deleted inserted replaced
2456:60ab1054069d 3818:dc18457b1cef
1 package de.intevation.flys.artifacts.states;
2
3 import java.util.List;
4
5 import org.apache.log4j.Logger;
6
7 import de.intevation.artifacts.CallContext;
8
9 import de.intevation.artifactdatabase.state.Facet;
10
11 import de.intevation.flys.artifacts.FLYSArtifact;
12 import de.intevation.flys.artifacts.WINFOArtifact;
13 import de.intevation.flys.artifacts.ChartArtifact;
14
15 import de.intevation.flys.artifacts.model.DurationCurveFacet;
16 import de.intevation.flys.artifacts.model.FacetTypes;
17 import de.intevation.flys.artifacts.model.WQDay;
18
19 import de.intevation.flys.artifacts.model.DataFacet;
20 import de.intevation.flys.artifacts.model.ReportFacet;
21 import de.intevation.flys.artifacts.model.EmptyFacet;
22 import de.intevation.flys.artifacts.model.CalculationResult;
23
24 import de.intevation.flys.artifacts.resources.Resources;
25
26 import de.intevation.flys.utils.FLYSUtils;
27
28
29 /**
30 * The final state that will be reached after the duration curve calculation
31 * mode has been chosen.
32 *
33 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
34 */
35 public class DurationCurveState
36 extends DefaultState
37 implements FacetTypes
38 {
39 /** The logger that is used in this state. */
40 private static Logger logger = Logger.getLogger(DurationCurveState.class);
41
42 public DurationCurveState() {
43 }
44
45
46 @Override
47 public Object computeAdvance(
48 FLYSArtifact artifact,
49 String hash,
50 CallContext context,
51 List<Facet> facets,
52 Object old
53 ) {
54 if (artifact instanceof WINFOArtifact) {
55 WINFOArtifact winfo = (WINFOArtifact)artifact;
56
57 CalculationResult res;
58
59 if (old instanceof CalculationResult) {
60 res = (CalculationResult)old;
61 }
62 else {
63 res = winfo.getDurationCurveData();
64 }
65
66 WQDay wqday = (WQDay)res.getData();
67
68 if (wqday != null && facets != null) {
69 Object[] args = new Object[] {
70 FLYSUtils.getRiver(winfo).getName()
71 };
72
73 String nameW = Resources.getMsg(
74 context.getMeta(),
75 "chart.duration.curve.curve.w",
76 "",
77 args);
78
79 String nameQ = Resources.getMsg(
80 context.getMeta(),
81 "chart.duration.curve.curve.q",
82 "",
83 args);
84
85 Facet w = new DurationCurveFacet(DURATION_W, nameW);
86 Facet q = new DurationCurveFacet(DURATION_Q, nameQ);
87
88 facets.add(w);
89 facets.add(q);
90
91 facets.add(new DataFacet(CSV, "CSV data"));
92 facets.add(new DataFacet(PDF, "PDF data"));
93
94 if (res.getReport().hasProblems()) {
95 facets.add(new ReportFacet());
96 }
97 }
98
99 return res;
100 }
101 else if (artifact instanceof ChartArtifact) {
102 ChartArtifact chart = (ChartArtifact)artifact;
103 facets.add(new EmptyFacet());
104 return null;
105 }
106 return null;
107 }
108 }
109 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org