comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/HYKFacet.java @ 2133:767ce9d1991f

Added HYKFacet. flys-artifacts/trunk@3708 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Wed, 18 Jan 2012 14:45:24 +0000
parents
children 0fa37d4de13d
comparison
equal deleted inserted replaced
2132:e8fc770d2f8c 2133:767ce9d1991f
1 package de.intevation.flys.artifacts.model;
2
3 import java.util.List;
4
5 import org.apache.log4j.Logger;
6
7 import de.intevation.artifacts.Artifact;
8 import de.intevation.artifacts.CallContext;
9 import de.intevation.artifacts.DataProvider;
10
11 import de.intevation.artifactdatabase.state.Facet;
12
13 import de.intevation.flys.artifacts.HYKArtifact;
14
15 import de.intevation.flys.artifacts.states.DefaultState.ComputeType;
16 import de.intevation.flys.model.FastCrossSectionLine;
17
18
19 /**
20 * Trival Facet for HYKs
21 */
22 public class HYKFacet
23 extends DataFacet
24 implements FacetTypes {
25
26 private static Logger logger = Logger.getLogger(HYKFacet.class);
27
28
29 /** Trivial constructor, set (maybe localized) description. */
30 public HYKFacet(int idx, String description) {
31 super(idx, HYK, description, ComputeType.FEED, null, null);
32 }
33
34
35 /**
36 *
37 * @param art artifact to get data from.
38 * @param context ignored
39 */
40 public Object getData(Artifact art, CallContext context) {
41 logger.debug("HYKFacet.getData");
42
43 String dataKey = CrossSectionFacet.BLACKBOARD_CS_MASTER_DATA;
44
45 List<DataProvider> providers = context.getDataProvider(dataKey);
46 if (providers.size() < 1) {
47 logger.warn("Could not find Cross-Section data provider to get master cs km.");
48 return null;
49 }
50
51 FastCrossSectionLine crossSection = (FastCrossSectionLine) providers.get(0)
52 .provideData(dataKey, null, context);
53
54 double km = crossSection.getKm();
55 logger.debug("HYKFacet.getData: Master Cross Section is at km: " + km);
56
57 // Set this km at hyk artifact to be evaluated.
58 HYKArtifact hyk = (HYKArtifact) art;
59 hyk.setKm(km);
60
61 return hyk.compute(context, hash, stateId, type, false);
62 }
63
64
65 /** Do a deep copy. */
66 @Override
67 public Facet deepCopy() {
68 HYKFacet copy = new HYKFacet(this.index, this.description);
69 copy.set(this);
70 return copy;
71 }
72 }
73 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org