Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/states/HistoricalDischargeComputeState.java @ 5914:1058b3436dad
D4E river artifacts: Removed historical discharge calculation from WINFO artifact and use access instead.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Tue, 07 May 2013 17:32:33 +0200 |
parents | 59ff03ff48f1 |
children | af13ceeba52a |
comparison
equal
deleted
inserted
replaced
5913:37a0f4f7c54f | 5914:1058b3436dad |
---|---|
11 import java.text.NumberFormat; | 11 import java.text.NumberFormat; |
12 | 12 |
13 import java.util.List; | 13 import java.util.List; |
14 | 14 |
15 import org.apache.log4j.Logger; | 15 import org.apache.log4j.Logger; |
16 import org.w3c.dom.Element; | |
17 | 16 |
18 import org.dive4elements.artifactdatabase.state.Facet; | 17 import org.dive4elements.artifactdatabase.state.Facet; |
18 | |
19 import org.dive4elements.artifacts.Artifact; | 19 import org.dive4elements.artifacts.Artifact; |
20 import org.dive4elements.artifacts.CallContext; | 20 import org.dive4elements.artifacts.CallContext; |
21 | |
21 import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator; | 22 import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator; |
23 | |
22 import org.dive4elements.river.artifacts.D4EArtifact; | 24 import org.dive4elements.river.artifacts.D4EArtifact; |
23 import org.dive4elements.river.artifacts.WINFOArtifact; | 25 |
26 import org.dive4elements.river.artifacts.access.HistoricalDischargeAccess.EvaluationMode; | |
27 | |
24 import org.dive4elements.river.artifacts.access.HistoricalDischargeAccess; | 28 import org.dive4elements.river.artifacts.access.HistoricalDischargeAccess; |
25 import org.dive4elements.river.artifacts.access.HistoricalDischargeAccess.EvaluationMode; | 29 |
30 import org.dive4elements.river.artifacts.model.Calculation6; | |
26 import org.dive4elements.river.artifacts.model.CalculationResult; | 31 import org.dive4elements.river.artifacts.model.CalculationResult; |
27 import org.dive4elements.river.artifacts.model.DataFacet; | 32 import org.dive4elements.river.artifacts.model.DataFacet; |
28 import org.dive4elements.river.artifacts.model.FacetTypes; | 33 import org.dive4elements.river.artifacts.model.FacetTypes; |
29 import org.dive4elements.river.artifacts.model.HistoricalDischargeCurveFacet; | 34 import org.dive4elements.river.artifacts.model.HistoricalDischargeCurveFacet; |
30 import org.dive4elements.river.artifacts.model.HistoricalDischargeData; | 35 import org.dive4elements.river.artifacts.model.HistoricalDischargeData; |
34 import org.dive4elements.river.artifacts.model.HistoricalWQKms; | 39 import org.dive4elements.river.artifacts.model.HistoricalWQKms; |
35 import org.dive4elements.river.artifacts.model.HistoricalWQTimerange; | 40 import org.dive4elements.river.artifacts.model.HistoricalWQTimerange; |
36 import org.dive4elements.river.artifacts.model.ReportFacet; | 41 import org.dive4elements.river.artifacts.model.ReportFacet; |
37 import org.dive4elements.river.artifacts.model.WQKms; | 42 import org.dive4elements.river.artifacts.model.WQKms; |
38 import org.dive4elements.river.artifacts.model.WQTimerange; | 43 import org.dive4elements.river.artifacts.model.WQTimerange; |
44 | |
39 import org.dive4elements.river.artifacts.resources.Resources; | 45 import org.dive4elements.river.artifacts.resources.Resources; |
46 | |
40 import org.dive4elements.river.model.TimeInterval; | 47 import org.dive4elements.river.model.TimeInterval; |
41 | 48 |
49 import org.w3c.dom.Element; | |
42 | 50 |
43 /** | 51 /** |
44 * State to calculate historical discharge curves. | 52 * State to calculate historical discharge curves. |
45 * | 53 * |
46 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | 54 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
47 */ | 55 */ |
48 public class HistoricalDischargeComputeState | 56 public class HistoricalDischargeComputeState |
49 extends DefaultState | 57 extends DefaultState |
50 implements FacetTypes { | 58 implements FacetTypes |
51 | 59 { |
52 private static final Logger logger = Logger | 60 private static final Logger logger = Logger |
53 .getLogger(HistoricalDischargeComputeState.class); | 61 .getLogger(HistoricalDischargeComputeState.class); |
54 | 62 |
55 public static final String DEFAULT_UNIT = "cm"; | 63 public static final String DEFAULT_UNIT = "cm"; |
56 public static final String I18N_WQ_CURVE_FACET_RANGE = "historical_discharge.wq.curve_range"; | 64 public static final String I18N_WQ_CURVE_FACET_RANGE = "historical_discharge.wq.curve_range"; |
65 @Override | 73 @Override |
66 public Object computeAdvance(D4EArtifact artifact, String hash, | 74 public Object computeAdvance(D4EArtifact artifact, String hash, |
67 CallContext context, List<Facet> facets, Object old) { | 75 CallContext context, List<Facet> facets, Object old) { |
68 logger.debug("HistoricalDischargeComputeState.computeAdvance"); | 76 logger.debug("HistoricalDischargeComputeState.computeAdvance"); |
69 | 77 |
70 WINFOArtifact winfo = (WINFOArtifact) artifact; | 78 HistoricalDischargeAccess access = |
71 | 79 new HistoricalDischargeAccess(artifact); |
72 CalculationResult res = old instanceof CalculationResult ? (CalculationResult) old | 80 |
73 : winfo.getHistoricalDischargeData(); | 81 CalculationResult res = old instanceof CalculationResult |
82 ? (CalculationResult)old | |
83 : new Calculation6(access).calculate(); | |
74 | 84 |
75 if (facets == null) { | 85 if (facets == null) { |
76 return res; | 86 return res; |
77 } | 87 } |
78 | 88 |
79 if (res.getReport().hasProblems()) { | 89 if (res.getReport().hasProblems()) { |
80 facets.add(new ReportFacet(ComputeType.ADVANCE, hash, id)); | 90 facets.add(new ReportFacet(ComputeType.ADVANCE, hash, id)); |
81 } | 91 } |
82 | 92 |
83 HistoricalDischargeData data = (HistoricalDischargeData) res.getData(); | 93 HistoricalDischargeData data = (HistoricalDischargeData) res.getData(); |
84 HistoricalDischargeAccess access = new HistoricalDischargeAccess( | |
85 artifact); | |
86 | 94 |
87 WQTimerange[] wqts = (WQTimerange[]) data.getWQTimeranges(); | 95 WQTimerange[] wqts = (WQTimerange[]) data.getWQTimeranges(); |
88 if (wqts != null && wqts.length > 0) { | 96 if (wqts != null && wqts.length > 0) { |
89 facets.add(new DataFacet(CSV, "CSV data", ComputeType.ADVANCE, | 97 facets.add(new DataFacet(CSV, "CSV data", ComputeType.ADVANCE, |
90 hash, id)); | 98 hash, id)); |
101 } | 109 } |
102 | 110 |
103 return res; | 111 return res; |
104 } | 112 } |
105 | 113 |
106 protected void prepareFacets(List<Facet> facets, WQTimerange[] wqts, | 114 protected void prepareFacets( |
107 HistoricalDischargeAccess access) { | 115 List<Facet> facets, |
116 WQTimerange[] wqts, | |
117 HistoricalDischargeAccess access | |
118 ) { | |
108 int i = 0; | 119 int i = 0; |
109 | 120 |
110 for (WQTimerange wqt : wqts) { | 121 for (WQTimerange wqt : wqts) { |
111 logger.debug("Prepare facet for: " + wqt.getName()); | 122 logger.debug("Prepare facet for: " + wqt.getName()); |
112 | 123 |