Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/SedimentLoadDataCalculate.java @ 8125:f01c65261963
(issue1448) Add WIP SedimentLoadDataFacet and use it in calculation.
The unit handling is currently just a stub
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Mon, 25 Aug 2014 15:56:09 +0200 |
parents | 75e62ea0e307 |
children | 353f93d5d9f7 |
comparison
equal
deleted
inserted
replaced
8124:2c21fd1ade39 | 8125:f01c65261963 |
---|---|
26 import org.dive4elements.river.artifacts.model.ReportFacet; | 26 import org.dive4elements.river.artifacts.model.ReportFacet; |
27 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadDataCalculation; | 27 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadDataCalculation; |
28 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadLSData; | 28 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadLSData; |
29 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadFacet; | 29 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadFacet; |
30 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadFactory; | 30 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadFactory; |
31 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadResult; | 31 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadDataResult; |
32 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadDataResult.Fraction; | |
33 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadDataFacet; | |
32 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadUnknownFacet; | 34 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadUnknownFacet; |
33 import org.dive4elements.river.artifacts.resources.Resources; | 35 import org.dive4elements.river.artifacts.resources.Resources; |
34 import org.dive4elements.river.artifacts.states.DefaultState; | 36 import org.dive4elements.river.artifacts.states.DefaultState; |
35 | 37 |
36 /** State in which Sediment Load(s) are calculated/retrieved. */ | 38 /** State in which Sediment Load(s) are calculated/retrieved. */ |
40 { | 42 { |
41 | 43 |
42 private static final long serialVersionUID = 1L; | 44 private static final long serialVersionUID = 1L; |
43 | 45 |
44 private static final Logger logger = Logger | 46 private static final Logger logger = Logger |
45 .getLogger(SedimentLoadCalculate.class); | 47 .getLogger(SedimentLoadDataCalculate.class); |
46 | 48 |
47 public static final String I18N_FACET_SEDIMENTLOAD_COARSE = "facet.sedimentload.coarse"; | 49 public static final String I18N_FACET_SEDIMENTLOAD_COARSE = "facet.sedimentload.coarse"; |
48 public static final String I18N_FACET_SEDIMENTLOAD_SAND = "facet.sedimentload.sand"; | 50 public static final String I18N_FACET_SEDIMENTLOAD_SAND = "facet.sedimentload.sand"; |
49 public static final String I18N_FACET_SEDIMENTLOAD_FINE_MIDDLE = "facet.sedimentload.fine_middle"; | 51 public static final String I18N_FACET_SEDIMENTLOAD_FINE_MIDDLE = "facet.sedimentload.fine_middle"; |
50 public static final String I18N_FACET_SEDIMENTLOAD_SUSPSAND = "facet.sedimentload.susp_sand"; | 52 public static final String I18N_FACET_SEDIMENTLOAD_SUSPSAND = "facet.sedimentload.susp_sand"; |
141 | 143 |
142 CalculationResult res = old instanceof CalculationResult | 144 CalculationResult res = old instanceof CalculationResult |
143 ? (CalculationResult) old | 145 ? (CalculationResult) old |
144 : new SedimentLoadDataCalculation().calculate(access); | 146 : new SedimentLoadDataCalculation().calculate(access); |
145 | 147 |
146 if (facets == null || res == null) { | 148 SedimentLoadDataResult sdRes; |
149 | |
150 if (res == null) { | |
151 logger.error ("No calculation result."); | |
152 } | |
153 | |
154 Object raw = res.getData(); | |
155 if (raw == null) { | |
156 logger.warn("No result data."); | |
147 return res; | 157 return res; |
158 } | |
159 | |
160 if (raw instanceof SedimentLoadDataResult) { | |
161 sdRes = (SedimentLoadDataResult) raw; | |
162 } else if (raw instanceof SedimentLoadDataCalculation) { | |
163 SedimentLoadDataCalculation calc = (SedimentLoadDataCalculation) raw; | |
164 logger.warn ("Problems : " + calc.problemsToString()); | |
165 return calc; | |
166 } else { | |
167 logger.error ("Unknown result"); | |
168 return null; | |
169 } | |
170 | |
171 int i = 0; | |
172 for (Fraction fract: sdRes.getFractions()) { | |
173 logger.debug("Adding facet for fraction: " + fract.getName()); | |
174 newFacets.add(new SedimentLoadDataFacet(i++, fract.getName(), | |
175 fract.getUnit(), ComputeType.ADVANCE, id, hash, context)); | |
176 } | |
177 | |
178 newFacets.add( | |
179 new DataFacet(CSV, "CSV data", ComputeType.ADVANCE, hash, id)); | |
180 | |
181 if (facets != null) { | |
182 facets.addAll(newFacets); | |
183 } else { | |
184 facets = newFacets; | |
148 } | 185 } |
149 | 186 |
150 /* XXX: THIS IS ALL BROKEN | 187 /* XXX: THIS IS ALL BROKEN |
151 | 188 |
152 SedimentLoadResult[] results = (SedimentLoadResult[]) res.getData(); | 189 SedimentLoadResult[] results = (SedimentLoadResult[]) res.getData(); |
187 ComputeType.ADVANCE, | 224 ComputeType.ADVANCE, |
188 getID(), | 225 getID(), |
189 hash)); | 226 hash)); |
190 } | 227 } |
191 | 228 |
192 newFacets.add( | |
193 new DataFacet(CSV, "CSV data", ComputeType.ADVANCE, hash, id)); | |
194 | |
195 facets.addAll(newFacets); | |
196 | 229 |
197 */ | 230 */ |
198 | 231 |
199 return res; | 232 return res; |
200 } | 233 } |