comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixLongitudinalReferenceFacet.java @ 3169:b6da650b0718

FixA: Added longitudinal section chart. flys-artifacts/trunk@4782 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Mon, 25 Jun 2012 15:53:34 +0000
parents
children 70966b52c073
comparison
equal deleted inserted replaced
3168:e10323bf3cbc 3169:b6da650b0718
1 package de.intevation.flys.artifacts.model.fixings;
2
3 import org.apache.log4j.Logger;
4
5 import de.intevation.artifacts.Artifact;
6 import de.intevation.artifacts.CallContext;
7
8 import de.intevation.flys.artifacts.FLYSArtifact;
9 import de.intevation.flys.artifacts.FixationArtifactAccess;
10
11 import de.intevation.flys.artifacts.model.FacetTypes;
12 import de.intevation.flys.artifacts.model.DataFacet;
13 import de.intevation.flys.artifacts.model.CalculationResult;
14 import de.intevation.flys.artifacts.model.Parameters;
15
16 import de.intevation.flys.utils.KMIndex;
17
18 import de.intevation.flys.artifacts.states.DefaultState.ComputeType;
19
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 FixLongitudinalReferenceFacet
27 extends DataFacet
28 implements FacetTypes {
29
30 /** House logger. */
31 private static Logger logger = Logger.getLogger(FixLongitudinalReferenceFacet.class);
32
33 /** Trivial Constructor. */
34 public FixLongitudinalReferenceFacet() {
35 }
36
37
38 public FixLongitudinalReferenceFacet(
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("FixLongitudinalReferenceFacet.getData");
64
65 if (artifact instanceof FLYSArtifact) {
66 FLYSArtifact flys = (FLYSArtifact)artifact;
67 FixationArtifactAccess access = new FixationArtifactAccess(flys);
68
69 CalculationResult res =
70 (CalculationResult) flys.compute(context,
71 ComputeType.ADVANCE,
72 false);
73
74 FixResult result = (FixResult) res.getData();
75
76 KMIndex<QWD []> kmReference = result.getReferenced();
77
78 if (kmReference == null) {
79 logger.warn("No references found.");
80 return null;
81 }
82
83 return kmReference;
84 }
85 else {
86 logger.warn("Artifact is no instance of FLYSArtifact.");
87 return null;
88 }
89 }
90
91
92 /**
93 * Create a deep copy of this Facet.
94 * @return a deep copy.
95 */
96 @Override
97 public FixLongitudinalReferenceFacet deepCopy() {
98 FixLongitudinalReferenceFacet copy =
99 new FixLongitudinalReferenceFacet();
100 copy.set(this);
101 return copy;
102 }
103 }
104 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org