Mercurial > dive4elements > river
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 : |