Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/DurationCurveFacet.java @ 2746:4634cf5574f7
Let DurationCurveFacet provide relevant data via Blackboard.
flys-artifacts/trunk@4481 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Wed, 23 May 2012 20:34:02 +0000 |
parents | b1b0a0b61845 |
children | 5642a83420f2 |
comparison
equal
deleted
inserted
replaced
2745:b63017afbca8 | 2746:4634cf5574f7 |
---|---|
1 package de.intevation.flys.artifacts.model; | 1 package de.intevation.flys.artifacts.model; |
2 | |
3 import java.util.List; | |
4 import java.util.ArrayList; | |
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 |
14 import de.intevation.flys.artifacts.FLYSArtifact; | |
11 import de.intevation.flys.artifacts.WINFOArtifact; | 15 import de.intevation.flys.artifacts.WINFOArtifact; |
12 | 16 |
13 import de.intevation.flys.artifacts.states.DefaultState.ComputeType; | 17 import de.intevation.flys.artifacts.states.DefaultState.ComputeType; |
14 | 18 |
15 | 19 |
20 /** | |
21 * Data of a duration curve. | |
22 */ | |
16 public class DurationCurveFacet extends DefaultFacet { | 23 public class DurationCurveFacet extends DefaultFacet { |
17 | 24 |
18 private static Logger logger = Logger.getLogger(DurationCurveFacet.class); | 25 private static Logger logger = Logger.getLogger(DurationCurveFacet.class); |
26 | |
27 /** Blackboard data provider key for durationcurve (wqday) data. */ | |
28 public static String BB_DURATIONCURVE = "durationcurve"; | |
29 | |
30 /** Blackboard data provider key for km of durationcurve. */ | |
31 public static String BB_DURATIONCURVE_KM = "durationcurve.km"; | |
19 | 32 |
20 public DurationCurveFacet() { | 33 public DurationCurveFacet() { |
21 } | 34 } |
22 | 35 |
23 public DurationCurveFacet(String name, String description) { | 36 public DurationCurveFacet(String name, String description) { |
24 super(0, name, description); | 37 super(0, name, description); |
25 } | 38 } |
26 | 39 |
27 | 40 |
41 /** | |
42 * Expose state computation from WINFOArtifact. | |
43 */ | |
28 public Object getData(Artifact artifact, CallContext context) { | 44 public Object getData(Artifact artifact, CallContext context) { |
29 logger.debug("Get data for duration curve data"); | 45 logger.debug("Get data for duration curve data"); |
30 | 46 |
31 WINFOArtifact winfo = (WINFOArtifact)artifact; | 47 WINFOArtifact winfo = (WINFOArtifact)artifact; |
32 | 48 |
34 context, ComputeType.ADVANCE, false); | 50 context, ComputeType.ADVANCE, false); |
35 | 51 |
36 return cr.getData(); | 52 return cr.getData(); |
37 } | 53 } |
38 | 54 |
55 | |
56 @Override | |
57 public List getStaticDataProviderKeys(Artifact art) { | |
58 List list = new ArrayList(); | |
59 list.add(BB_DURATIONCURVE); | |
60 list.add(BB_DURATIONCURVE_KM); | |
61 return list; | |
62 } | |
63 | |
64 | |
65 /** | |
66 * Can provide whatever getData returns and additionally the location. | |
67 * @param key will respond on BB_DURATIONCURVE +KM | |
68 * @param param ignored | |
69 * @param context ignored | |
70 * @return whatever getData delivers or location. | |
71 */ | |
72 @Override | |
73 public Object provideBlackboardData(Artifact artifact, | |
74 Object key, | |
75 Object param, | |
76 CallContext context | |
77 ) { | |
78 if (key.equals(BB_DURATIONCURVE)) { | |
79 return getData(artifact, context); | |
80 } | |
81 else if (key.equals(BB_DURATIONCURVE_KM)) { | |
82 return ((FLYSArtifact)artifact).getDataAsString("ld_locations"); | |
83 } | |
84 else { | |
85 return null; | |
86 } | |
87 } | |
88 | |
89 | |
90 /** Create a deep copy. */ | |
39 @Override | 91 @Override |
40 public Facet deepCopy() { | 92 public Facet deepCopy() { |
41 DurationCurveFacet copy = new DurationCurveFacet(); | 93 DurationCurveFacet copy = new DurationCurveFacet(); |
42 copy.set(this); | 94 copy.set(this); |
43 return copy; | 95 return copy; |