annotate flys-artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/FixLongitudinalAvSectorFacet.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/FixLongitudinalAvSectorFacet.java@66f539df4e8b
children
rev   line source
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3610
diff changeset
1 package org.dive4elements.river.artifacts.model.fixings;
3610
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
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3610
diff changeset
5 import org.dive4elements.artifacts.Artifact;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3610
diff changeset
6 import org.dive4elements.artifacts.CallContext;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3610
diff changeset
7 import org.dive4elements.river.artifacts.FLYSArtifact;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3610
diff changeset
8 import org.dive4elements.river.artifacts.model.CalculationResult;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3610
diff changeset
9 import org.dive4elements.river.artifacts.model.DataFacet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3610
diff changeset
10 import org.dive4elements.river.artifacts.model.FacetTypes;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3610
diff changeset
11 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3610
diff changeset
12 import org.dive4elements.river.utils.KMIndex;
3610
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