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 :

http://dive4elements.wald.intevation.org