Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java @ 1085:07878836ee0d
Plot "real" (respecting parameters) W and Q MainValues, yet in wrong scale.
flys-artifacts/trunk@2588 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Fri, 26 Aug 2011 08:49:18 +0000 |
parents | fa01c3602f66 |
children | e298c4d28927 |
comparison
equal
deleted
inserted
replaced
1084:583314dafdb6 | 1085:07878836ee0d |
---|---|
5 | 5 |
6 import org.apache.log4j.Logger; | 6 import org.apache.log4j.Logger; |
7 | 7 |
8 import org.w3c.dom.Document; | 8 import org.w3c.dom.Document; |
9 | 9 |
10 import de.intevation.artifactdatabase.state.DefaultFacet; | |
11 import de.intevation.artifactdatabase.state.Facet; | 10 import de.intevation.artifactdatabase.state.Facet; |
12 import de.intevation.artifactdatabase.state.DefaultOutput; | 11 import de.intevation.artifactdatabase.state.DefaultOutput; |
13 import de.intevation.artifactdatabase.state.State; | 12 import de.intevation.artifactdatabase.state.State; |
13 import de.intevation.artifactdatabase.data.StateData; | |
14 | 14 |
15 import de.intevation.artifacts.Artifact; | 15 import de.intevation.artifacts.Artifact; |
16 import de.intevation.artifacts.ArtifactFactory; | 16 import de.intevation.artifacts.ArtifactFactory; |
17 import de.intevation.artifacts.CallContext; | |
18 import de.intevation.artifacts.CallMeta; | 17 import de.intevation.artifacts.CallMeta; |
19 import de.intevation.flys.artifacts.model.RiverFactory; | 18 import de.intevation.flys.artifacts.model.RiverFactory; |
20 | 19 |
21 import de.intevation.flys.artifacts.model.FacetTypes; | 20 import de.intevation.flys.artifacts.model.MainValuesWFacet; |
21 import de.intevation.flys.artifacts.model.MainValuesQFacet; | |
22 import de.intevation.artifactdatabase.data.DefaultStateData; | |
22 import de.intevation.flys.artifacts.states.StaticState; | 23 import de.intevation.flys.artifacts.states.StaticState; |
23 | 24 |
24 import de.intevation.flys.model.Gauge; | 25 import de.intevation.flys.model.Gauge; |
26 import de.intevation.flys.model.MainValue; | |
25 import de.intevation.flys.model.River; | 27 import de.intevation.flys.model.River; |
26 | 28 |
27 | 29 |
28 /** | 30 /** |
29 * Artifact to access names of Points Of Interest along a segment of a river. | 31 * Artifact to access names of Points Of Interest along a segment of a river. |
71 | 73 |
72 @Override | 74 @Override |
73 protected void initialize(Artifact artifact, Object context, CallMeta meta) { | 75 protected void initialize(Artifact artifact, Object context, CallMeta meta) { |
74 logger.debug("MainValuesArtifact.initialize"); | 76 logger.debug("MainValuesArtifact.initialize"); |
75 WINFOArtifact winfo = (WINFOArtifact) artifact; | 77 WINFOArtifact winfo = (WINFOArtifact) artifact; |
76 River river = winfo.getRiver(); | 78 //River river = winfo.getRiver(); |
77 double location = winfo.getLocations()[0]; // Ort der Abflusskurve | 79 double location = winfo.getLocations()[0]; |
78 | 80 logger.debug("MainValues.location: " + location); |
79 logger.error("Location: " + location); | 81 addData("location", new DefaultStateData("location", null, null, |
80 Gauge gauge = river.determineGaugeByPosition(location); | 82 String.valueOf(location))); |
83 addData("river", winfo.getData("river")); | |
81 } | 84 } |
82 | 85 |
83 | 86 |
84 /** | 87 /** |
85 * Get a list containing the one and only State. | 88 * Get a list containing the one and only State. |
86 * @param context ignored. | 89 * @param context ignored. |
87 * @return list with one and only state. | 90 * @return list with one and only state. |
88 */ | 91 */ |
89 @Override | 92 @Override |
90 protected List<State> getStates(Object context) { | 93 protected List<State> getStates(Object context) { |
91 ArrayList<State> states = new ArrayList<State>(); | 94 ArrayList<State> states = new ArrayList<State>(); |
126 | 129 |
127 } | 130 } |
128 else { | 131 else { |
129 state = new StaticState(); | 132 state = new StaticState(); |
130 List<Facet> fs = new ArrayList<Facet>(); | 133 List<Facet> fs = new ArrayList<Facet>(); |
131 fs.add(new MainValuesFacet()); | 134 Facet qfacet = new MainValuesQFacet(); |
135 Facet wfacet = new MainValuesWFacet(); | |
136 fs.add(qfacet); | |
137 fs.add(wfacet); | |
132 // TODO check if facets and outputs already exist. | 138 // TODO check if facets and outputs already exist. |
133 // TODO also check, this is usually done in initialize, too. | 139 // TODO also check, this is usually done in initialize, too. |
134 facets.put(state.getID(), fs); | 140 facets.put(state.getID(), fs); |
135 DefaultOutput mainValuesOutput1 = new DefaultOutput( | 141 DefaultOutput mainValuesOutput1 = new DefaultOutput( |
136 "discharge_curve", "output.discharge_curve", "image/png", | 142 "discharge_curve", "output.discharge_curve", "image/png", |
146 state.getOutputs().add(mainValuesOutput2); | 152 state.getOutputs().add(mainValuesOutput2); |
147 } | 153 } |
148 return state; | 154 return state; |
149 } | 155 } |
150 | 156 |
151 | 157 /** |
152 public List getMainValues() { | 158 * Get the river. |
153 River river = RiverFactory.getRiver("Saar"); | 159 * @todo resolve, this is a duplicate of WINFOArtifact. |
154 logger.warn("Go to river " + river); | 160 */ |
155 double location = 5.0f; | 161 public River getRiver() { |
156 Gauge gauge = river.determineGaugeByPosition(location); | 162 StateData dRiver = getData("river"); |
157 return gauge.getMainValues(); | 163 |
158 } | 164 return dRiver != null |
159 | 165 ? RiverFactory.getRiver((String) dRiver.getValue()) |
160 | 166 : null; |
161 /* FACET IMPLEMENTATION */ | 167 } |
162 // TODO evaluate whether DefaultFacet can do. | 168 |
163 static class MainValuesFacet | 169 protected Gauge getGauge() { |
164 extends DefaultFacet | 170 River river = getRiver(); |
165 implements FacetTypes { | 171 |
166 | 172 if (river == null) { |
167 public MainValuesFacet() { | 173 return null; |
168 description = "facet.discharge_curves.mainvalues.description"; | 174 } |
169 name = COMPUTED_DISCHARGE_MAINVALUES; | 175 |
170 //Resources.getMsg(meta, I18N_DESCRIPTION, I18N_DESCRIPTION)); | 176 double location = Double.parseDouble( |
171 index = 0; | 177 (String)getData("location").getValue()); |
172 } | 178 |
173 | 179 return river.determineGaugeByPosition(location); |
174 | 180 } |
175 /** | 181 |
176 * Returns the description of this facet. | 182 public List<MainValue> getMainValuesQ() { |
177 * | 183 List<MainValue> filteredList = new ArrayList<MainValue>(); |
178 * @return the description of this facet. | 184 Gauge gauge = getGauge(); |
179 */ | 185 if (gauge != null) { |
180 @Override | 186 List<MainValue> orig = gauge.getMainValues(); |
181 public String getDescription() { | 187 for (MainValue mv : orig) { |
182 // TODO remove, is part of DefaultFacet. | 188 if (mv.getMainValue().getType().getName().equals("Q")) { |
183 return "facet.mainvalues"; | 189 filteredList.add(mv); |
184 } | 190 } |
185 | 191 } |
186 | 192 } |
187 /** | 193 return filteredList; |
188 * Returns the data this facet requires. | 194 } |
189 * | 195 |
190 * @param artifact the owner artifact. | 196 public List<MainValue> getMainValuesW() { |
191 * @param context the CallContext (ignored). | 197 List<MainValue> filteredList = new ArrayList<MainValue>(); |
192 * | 198 Gauge gauge = getGauge(); |
193 * @return the data. | 199 if (gauge != null) { |
194 */ | 200 List<MainValue> orig = gauge.getMainValues(); |
195 @Override | 201 for (MainValue mv : orig) { |
196 public Object getData(Artifact artifact, CallContext context) { | 202 if (mv.getMainValue().getType().getName().equals("W")) { |
197 MainValuesArtifact mvArtifact = (MainValuesArtifact) artifact; | 203 filteredList.add(mv); |
198 return mvArtifact.getMainValues(); | 204 } |
199 } | 205 } |
200 | 206 } |
201 | 207 return filteredList; |
202 /** | 208 } |
203 * Create a deep copy of this Facet. | |
204 * @return a deep copy. | |
205 */ | |
206 @Override | |
207 public MainValuesFacet deepCopy() { | |
208 MainValuesFacet copy = new MainValuesFacet(); | |
209 copy.set(this); | |
210 return copy; | |
211 } | |
212 } | |
213 | |
214 } | 209 } |