comparison flys-artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/FixLongitudinalDeviationFacet.java @ 5831:bd047b71ab37

Repaired internal references
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 12:06:39 +0200
parents flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixLongitudinalDeviationFacet.java@acfd48384835
children
comparison
equal deleted inserted replaced
5830:160f53ee0870 5831:bd047b71ab37
1 package org.dive4elements.river.artifacts.model.fixings;
2
3 import org.dive4elements.artifacts.Artifact;
4 import org.dive4elements.artifacts.CallContext;
5
6 import org.dive4elements.river.artifacts.FLYSArtifact;
7
8 import org.dive4elements.river.artifacts.access.FixAnalysisAccess;
9
10 import org.dive4elements.river.artifacts.model.CalculationResult;
11 import org.dive4elements.river.artifacts.model.DataFacet;
12 import org.dive4elements.river.artifacts.model.FacetTypes;
13 import org.dive4elements.river.artifacts.model.Parameters;
14
15 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
16
17 import org.dive4elements.river.utils.KMIndex;
18
19 import org.apache.log4j.Logger;
20
21 /**
22 * Facet to show average W values for Q sectors.
23 *
24 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
25 */
26 public class FixLongitudinalDeviationFacet
27 extends DataFacet
28 implements FacetTypes {
29
30 /** House logger. */
31 private static Logger logger = Logger.getLogger(FixLongitudinalDeviationFacet.class);
32
33 /** Trivial Constructor. */
34 public FixLongitudinalDeviationFacet() {
35 }
36
37
38 public FixLongitudinalDeviationFacet(
39 int ndx,
40 String name,
41 String description)
42 {
43 super(
44 ndx,
45 name,
46 description,
47 ComputeType.ADVANCE,
48 null,
49 null);
50 }
51
52
53 /**
54 * Returns the data this facet requires.
55 *
56 * @param artifact the owner artifact.
57 * @param context the CallContext.
58 *
59 * @return the data as KMIndex.
60 */
61 @Override
62 public Object getData(Artifact artifact, CallContext context) {
63 logger.debug("FixLongitudinalDeviationFacet.getData");
64
65 if (artifact instanceof FLYSArtifact) {
66 FLYSArtifact flys = (FLYSArtifact)artifact;
67 FixAnalysisAccess access = new FixAnalysisAccess(flys, context);
68
69 CalculationResult res =
70 (CalculationResult) flys.compute(context,
71 ComputeType.ADVANCE,
72 false);
73
74 FixAnalysisResult result = (FixAnalysisResult) res.getData();
75
76 KMIndex<AnalysisPeriod []> kmPeriods = result.getAnalysisPeriods();
77
78 if (kmPeriods == null) {
79 logger.warn("No analysis periods found.");
80 return null;
81 }
82
83 Parameters params = result.getParameters();
84
85 KMIndex<double[]> kmIndex = new KMIndex<double[]>();
86 for (KMIndex.Entry<AnalysisPeriod[]> entry: kmPeriods) {
87 double km = entry.getKm();
88 double[] stdDev =
89 params.interpolate("km", km, new String[] {"std-dev"});
90
91 if(stdDev == null) {
92 logger.warn("getData: stdDev == null");
93 continue;
94 }
95 kmIndex.add(km, stdDev);
96 }
97
98 return kmIndex;
99 }
100 else {
101 logger.warn("Artifact is no instance of FLYSArtifact.");
102 return null;
103 }
104 }
105
106
107 /**
108 * Create a deep copy of this Facet.
109 * @return a deep copy.
110 */
111 @Override
112 public FixLongitudinalDeviationFacet deepCopy() {
113 FixLongitudinalDeviationFacet copy = new FixLongitudinalDeviationFacet();
114 copy.set(this);
115 return copy;
116 }
117 }
118 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org