comparison artifacts/src/main/java/org/dive4elements/river/artifacts/states/extreme/ExtremeCompute.java @ 5838:5aa05a7a34b7

Rename modules to more fitting names.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 15:23:37 +0200
parents flys-artifacts/src/main/java/org/dive4elements/river/artifacts/states/extreme/ExtremeCompute.java@bd047b71ab37
children 4897a58c8746
comparison
equal deleted inserted replaced
5837:d9901a08d0a6 5838:5aa05a7a34b7
1 package org.dive4elements.river.artifacts.states.extreme;
2
3 import org.dive4elements.artifactdatabase.state.Facet;
4
5 import org.dive4elements.artifacts.CallContext;
6
7 import org.dive4elements.river.artifacts.FLYSArtifact;
8
9 import org.dive4elements.river.artifacts.access.ExtremeAccess;
10
11 import org.dive4elements.river.artifacts.model.CalculationResult;
12 import org.dive4elements.river.artifacts.model.CrossSectionWaterLineFacet;
13 import org.dive4elements.river.artifacts.model.DataFacet;
14 import org.dive4elements.river.artifacts.model.FacetTypes;
15 import org.dive4elements.river.artifacts.model.ReportFacet;
16 import org.dive4elements.river.artifacts.model.WaterlevelFacet;
17 import org.dive4elements.river.artifacts.model.WQKms;
18
19 import org.dive4elements.river.artifacts.model.extreme.ExtremeCurveFacet;
20 import org.dive4elements.river.artifacts.model.extreme.ExtremeCalculation;
21 import org.dive4elements.river.artifacts.model.extreme.ExtremeResult;
22
23 import org.dive4elements.river.artifacts.resources.Resources;
24 import org.dive4elements.river.artifacts.states.DefaultState;
25
26 import java.util.List;
27
28 import org.apache.log4j.Logger;
29
30
31 /** State in which to deliver extreme value analysis result. */
32 public class ExtremeCompute
33 extends DefaultState
34 implements FacetTypes
35 {
36 /** Private logger. */
37 private static Logger logger = Logger.getLogger(ExtremeCompute.class);
38
39
40 public ExtremeCompute() {
41 }
42
43
44 @Override
45 public Object computeAdvance(
46 FLYSArtifact artifact,
47 String hash,
48 CallContext context,
49 List<Facet> facets,
50 Object old
51 ) {
52 logger.debug("ExtremeCompute.computeAdvance");
53
54 CalculationResult res;
55
56 ExtremeAccess access = new ExtremeAccess(artifact, context);
57
58 if (old instanceof CalculationResult) {
59 res = (CalculationResult)old;
60 }
61 else {
62 ExtremeCalculation calc = new ExtremeCalculation(access);
63 res = calc.calculate();
64 }
65
66 if (facets == null) {
67 return res;
68 }
69
70 if (res.getReport().hasProblems()) {
71 facets.add(new ReportFacet());
72 }
73
74 ExtremeResult eres = (ExtremeResult) res.getData();
75 WQKms [] wqkms = (WQKms []) eres.getWQKms();
76
77 if (wqkms == null) {
78 logger.error("No computation result!");
79 return res;
80 }
81
82 for (int i = 0; i < wqkms.length; i++) {
83 String name = wqkms[i].getName();
84 // The name already contains "W(...)".
85 String qname = name.replace("W(","Q=");
86 qname = qname.substring(0,qname.length()-1);
87
88 Facet w = new WaterlevelFacet(
89 i, LONGITUDINAL_W, name, ComputeType.ADVANCE, id, hash);
90 Facet q = new WaterlevelFacet(
91 i, LONGITUDINAL_Q, qname, ComputeType.ADVANCE, id, hash);
92 Facet csFacet = new CrossSectionWaterLineFacet(i, name);
93
94 facets.add(w);
95 facets.add(q);
96 facets.add(csFacet);
97 }
98
99
100 facets.add(
101 new DataFacet(CSV, "CSV data", ComputeType.ADVANCE, hash, id));
102 facets.add(
103 new DataFacet(PDF, "PDF data", ComputeType.ADVANCE, hash, id));
104 facets.add(
105 new DataFacet(WST, "WST data", ComputeType.ADVANCE, hash, id));
106
107 facets.add(new ExtremeCurveFacet(Resources.getMsg(context.getMeta(),
108 "extreme_wq_curve", "extreme_wq_curve")));
109 facets.add(new ExtremeCurveFacet(Resources.getMsg(context.getMeta(),
110 "extreme_wq_base_curve", "extreme_wq_base_curve")
111 , true));
112
113 return res;
114 }
115 }
116 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org