Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/CrossSectionFacet.java @ 1967:27bb2e24f7f8
Preparations for better CrossSection diagrams.
flys-artifacts/trunk@3378 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Fri, 09 Dec 2011 15:57:32 +0000 |
parents | 51e59f221333 |
children | 98f3ef8da857 |
comparison
equal
deleted
inserted
replaced
1966:f572536af56c | 1967:27bb2e24f7f8 |
---|---|
1 package de.intevation.flys.artifacts.model; | 1 package de.intevation.flys.artifacts.model; |
2 | |
3 import java.util.ArrayList; | |
4 import java.util.List; | |
2 | 5 |
3 import org.apache.log4j.Logger; | 6 import org.apache.log4j.Logger; |
4 | 7 |
5 import de.intevation.artifacts.Artifact; | 8 import de.intevation.artifacts.Artifact; |
6 import de.intevation.artifacts.CallContext; | 9 import de.intevation.artifacts.CallContext; |
7 | 10 |
8 import de.intevation.artifactdatabase.state.DefaultFacet; | 11 import de.intevation.artifactdatabase.state.DefaultFacet; |
9 import de.intevation.artifactdatabase.state.Facet; | 12 import de.intevation.artifactdatabase.state.Facet; |
10 | 13 |
11 import de.intevation.flys.artifacts.WINFOArtifact; | 14 import de.intevation.flys.artifacts.CrossSectionArtifact; |
12 | 15 |
13 import de.intevation.flys.artifacts.states.DefaultState.ComputeType; | 16 import de.intevation.flys.artifacts.states.DefaultState.ComputeType; |
14 | 17 |
15 | 18 |
16 /** | 19 /** |
17 * Trival Facet for Cross Sections. | 20 * Trival Facet for Cross Sections (profiles). |
18 */ | 21 */ |
19 public class CrossSectionFacet | 22 public class CrossSectionFacet |
20 extends DefaultFacet | 23 extends DefaultFacet |
21 implements FacetTypes { | 24 implements FacetTypes { |
22 | 25 |
26 public static String BLACKBOARD_CS_MASTER_DATA | |
27 = "crosssection.masterprofile.data"; | |
28 | |
23 private static Logger logger = Logger.getLogger(CrossSectionFacet.class); | 29 private static Logger logger = Logger.getLogger(CrossSectionFacet.class); |
24 | 30 |
25 protected ComputeType type; | 31 protected ComputeType type; |
32 | |
26 | 33 |
27 /** Trivial constructor, set (maybe localized) description. */ | 34 /** Trivial constructor, set (maybe localized) description. */ |
28 public CrossSectionFacet(int idx, String description) { | 35 public CrossSectionFacet(int idx, String description) { |
29 super(idx, CROSS_SECTION, description); | 36 super(idx, CROSS_SECTION, description); |
30 type = ComputeType.ADVANCE; | 37 type = ComputeType.ADVANCE; |
31 } | 38 } |
32 | 39 |
33 | 40 |
41 /** Tell world we know about crosssection masters data and its index. */ | |
42 public List getDataProviderKeys(Artifact art) { | |
43 CrossSectionArtifact artifact = (CrossSectionArtifact) art; | |
44 List keys = new ArrayList(); | |
45 if (artifact.isMaster()) { | |
46 keys.add(BLACKBOARD_CS_MASTER_DATA); | |
47 } | |
48 return keys; | |
49 } | |
50 | |
51 | |
34 /** | 52 /** |
35 * Gets dummy data. | 53 * Can provide the master cross section lines or its index. |
54 * @param artifact crosssection-artifact | |
55 * @param key will respond on BLACKBOARD_CS_MASTER_DATA | |
56 * @param param ignored | |
57 * @param context ignored | |
58 * @return data from artifact (cross section master track). | |
36 */ | 59 */ |
37 public Object getData(Artifact artifact, CallContext context) { | 60 public Object provideBlackboardData(Artifact artifact, |
61 Object key, | |
62 Object param, | |
63 CallContext context | |
64 ) { | |
65 CrossSectionArtifact crossSection = (CrossSectionArtifact) artifact; | |
66 | |
67 if (key.equals(BLACKBOARD_CS_MASTER_DATA)) { | |
68 return crossSection.searchCrossSectionLine(); | |
69 } | |
70 else { | |
71 logger.warn("Cannot provide data for key: " + key); | |
72 return null; | |
73 } | |
74 } | |
75 | |
76 | |
77 /** | |
78 * Gets Cross Section (profile). | |
79 * @param art artifact to get data from. | |
80 * @param context ignored | |
81 */ | |
82 public Object getData(Artifact art, CallContext context) { | |
38 logger.debug("Get data for cross section"); | 83 logger.debug("Get data for cross section"); |
39 | 84 |
40 WINFOArtifact winfo = (WINFOArtifact)artifact; | 85 CrossSectionArtifact artifact = (CrossSectionArtifact)art; |
41 | 86 |
42 return winfo.getCrossSectionData(); | 87 return artifact.getCrossSectionData(); |
43 } | 88 } |
44 | 89 |
45 | 90 |
46 /** Do a deep copy. */ | 91 /** Do a deep copy. */ |
47 @Override | 92 @Override |
50 copy.set(this); | 95 copy.set(this); |
51 return copy; | 96 return copy; |
52 } | 97 } |
53 } | 98 } |
54 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 99 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |
55 |