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

http://dive4elements.wald.intevation.org