annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixLongitudinalAvSectorFacet.java @ 4282:8b4988815974

Added marker for Ws and Qs in Historical Discharge WQ charts. Therefore, the XYChartGenerator got two new methods addDomainMarker(Marker, boolean) and addValueMarker(Marker, boolean). The boolean parameters determine, if the marker should be visible or not. This is analogous to addAxisSeries(XYSeries, int, boolean).
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 29 Oct 2012 05:59:27 +0100
parents 66f539df4e8b
children
rev   line source
3610
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.artifacts.model.fixings;
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
2
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
3 import org.apache.log4j.Logger;
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
4
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
5 import de.intevation.artifacts.Artifact;
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
6 import de.intevation.artifacts.CallContext;
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
7 import de.intevation.flys.artifacts.FLYSArtifact;
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8 import de.intevation.flys.artifacts.model.CalculationResult;
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9 import de.intevation.flys.artifacts.model.DataFacet;
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10 import de.intevation.flys.artifacts.model.FacetTypes;
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11 import de.intevation.flys.artifacts.states.DefaultState.ComputeType;
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12 import de.intevation.flys.utils.KMIndex;
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14 public class FixLongitudinalAvSectorFacet
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
15 extends DataFacet
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
16 implements FacetTypes {
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18 /** House logger. */
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19 private static Logger logger =
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20 Logger.getLogger(FixLongitudinalAvSectorFacet.class);
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22 /** Trivial Constructor. */
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23 public FixLongitudinalAvSectorFacet() {
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 }
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 public FixLongitudinalAvSectorFacet(
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28 int ndx,
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29 String name,
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 String description)
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31 {
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32 super(
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 ndx,
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34 name,
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 description,
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 ComputeType.ADVANCE,
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 null,
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 null);
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39 }
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42 /**
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43 * Returns the data this facet requires.
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 *
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45 * @param artifact the owner artifact.
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 * @param context the CallContext.
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 *
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 * @return the data as KMIndex.
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 */
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 @Override
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51 public Object getData(Artifact artifact, CallContext context) {
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52 logger.debug("FixLongitudinalAvSectorFacet.getData");
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 if (artifact instanceof FLYSArtifact) {
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 FLYSArtifact flys = (FLYSArtifact)artifact;
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 CalculationResult res =
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58 (CalculationResult) flys.compute(context,
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 ComputeType.ADVANCE,
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60 false);
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 FixAnalysisResult result = (FixAnalysisResult) res.getData();
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64 KMIndex<AnalysisPeriod []> kmPeriods = result.getAnalysisPeriods();
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65 if (kmPeriods == null) {
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 logger.warn("No analysis periods found.");
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67 return null;
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68 }
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
69 int periodNdx = index >> 2;
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70 KMIndex<AnalysisPeriod> resPeriods =
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
71 new KMIndex<AnalysisPeriod>();
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
72 for (KMIndex.Entry<AnalysisPeriod[]> entry: kmPeriods) {
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
73 AnalysisPeriod ap = entry.getValue()[periodNdx];
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
74 resPeriods.add(entry.getKm(), ap);
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
75 }
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
76
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
77 return resPeriods;
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
78 }
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79 else {
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
80 logger.warn("Artifact is no instance of FLYSArtifact.");
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
81 return null;
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82 }
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
83 }
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
84
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
85
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
86 /**
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
87 * Create a deep copy of this Facet.
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
88 * @return a deep copy.
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
89 */
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
90 @Override
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
91 public FixLongitudinalAvSectorFacet deepCopy() {
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92 FixLongitudinalAvSectorFacet copy = new FixLongitudinalAvSectorFacet();
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
93 copy.set(this);
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
94 return copy;
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
95 }
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
96 }
66f539df4e8b Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
97 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org