Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/AreaFacet.java @ 2001:28a5c163f9cd
Added partial area-infrastructure.
flys-artifacts/trunk@3442 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Fri, 16 Dec 2011 14:02:59 +0000 |
parents | |
children | 7f99845e9499 |
comparison
equal
deleted
inserted
replaced
2000:e71719483546 | 2001:28a5c163f9cd |
---|---|
1 package de.intevation.flys.artifacts.model; | |
2 | |
3 import java.util.ArrayList; | |
4 import java.util.List; | |
5 | |
6 import org.apache.log4j.Logger; | |
7 | |
8 import de.intevation.artifacts.Artifact; | |
9 import de.intevation.artifacts.CallContext; | |
10 | |
11 import de.intevation.artifactdatabase.state.DefaultFacet; | |
12 import de.intevation.artifactdatabase.state.Facet; | |
13 | |
14 import de.intevation.artifacts.DataProvider; | |
15 | |
16 import de.intevation.flys.artifacts.AreaArtifact; | |
17 | |
18 import de.intevation.flys.artifacts.states.DefaultState.ComputeType; | |
19 import de.intevation.flys.artifacts.states.DefaultState.ComputeType; | |
20 | |
21 | |
22 /** | |
23 * Trival Facet for areas. | |
24 */ | |
25 public class AreaFacet | |
26 extends DefaultFacet | |
27 implements FacetTypes { | |
28 | |
29 private static Logger logger = Logger.getLogger(AreaFacet.class); | |
30 | |
31 /** Trivial constructor, set (maybe localized) description. */ | |
32 public AreaFacet(int idx, String description) { | |
33 super(idx, AREA, description); | |
34 } | |
35 | |
36 | |
37 /** | |
38 * Gets Cross Section (profile). | |
39 * @param art artifact to get data from. | |
40 * @param context ignored | |
41 */ | |
42 public Object getData(Artifact art, CallContext context) { | |
43 logger.debug("Get data for area ding"); | |
44 | |
45 // Get information from artifact about which | |
46 // info to grab from blackboard. | |
47 // | |
48 // All compatible facets should provide their data | |
49 // under the key (Artifact-UUID + Facet-Index). | |
50 AreaArtifact artifact = (AreaArtifact) art; | |
51 Object lowerData = null; | |
52 Object upperData = null; | |
53 | |
54 List<DataProvider> providers = context. | |
55 getDataProvider(artifact.getLowerDPKey()); | |
56 if (providers.size() < 1) { | |
57 logger.warn("No 'lower' given for area"); | |
58 } | |
59 else { | |
60 lowerData = providers.get(0).provideData( | |
61 artifact.getLowerDPKey(), null, context); | |
62 } | |
63 | |
64 providers = context.getDataProvider(artifact.getUpperDPKey()); | |
65 if (providers.size() < 1) { | |
66 logger.warn("No 'upper' given for area"); | |
67 } | |
68 else { | |
69 upperData = providers.get(0).provideData( | |
70 artifact.getUpperDPKey(), null, context); | |
71 } | |
72 | |
73 if (upperData == null && lowerData == null) { | |
74 logger.warn("No 'upper' given for area"); | |
75 return null; | |
76 } | |
77 | |
78 return new Object[] {lowerData, upperData}; | |
79 } | |
80 | |
81 | |
82 /** Do a deep copy. */ | |
83 @Override | |
84 public Facet deepCopy() { | |
85 AreaFacet copy = new AreaFacet(this.index, this.description); | |
86 copy.set(this); | |
87 return copy; | |
88 } | |
89 } | |
90 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |