Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/DifferencesState.java @ 8169:856701739443
Handle missing years in bed height differences without assuming an unknown year to be BC 1.
author | "Tom Gottfried <tom@intevation.de>" |
---|---|
date | Mon, 01 Sep 2014 09:43:55 +0200 |
parents | b5cba2690347 |
children | e4606eae8ea5 |
comparison
equal
deleted
inserted
replaced
8168:75a6ac0c73ef | 8169:856701739443 |
---|---|
18 import org.dive4elements.artifacts.Artifact; | 18 import org.dive4elements.artifacts.Artifact; |
19 import org.dive4elements.artifacts.CallContext; | 19 import org.dive4elements.artifacts.CallContext; |
20 import org.dive4elements.artifacts.CallMeta; | 20 import org.dive4elements.artifacts.CallMeta; |
21 import org.dive4elements.river.artifacts.D4EArtifact; | 21 import org.dive4elements.river.artifacts.D4EArtifact; |
22 import org.dive4elements.river.artifacts.access.BedDifferencesAccess; | 22 import org.dive4elements.river.artifacts.access.BedDifferencesAccess; |
23 import org.dive4elements.river.artifacts.model.Calculation; | |
23 import org.dive4elements.river.artifacts.model.CalculationResult; | 24 import org.dive4elements.river.artifacts.model.CalculationResult; |
24 import org.dive4elements.river.artifacts.model.DataFacet; | 25 import org.dive4elements.river.artifacts.model.DataFacet; |
25 import org.dive4elements.river.artifacts.model.FacetTypes; | 26 import org.dive4elements.river.artifacts.model.FacetTypes; |
27 import org.dive4elements.river.artifacts.model.ReportFacet; | |
26 import org.dive4elements.river.artifacts.model.minfo.BedDiffCalculation; | 28 import org.dive4elements.river.artifacts.model.minfo.BedDiffCalculation; |
27 import org.dive4elements.river.artifacts.model.minfo.BedDiffFacet; | 29 import org.dive4elements.river.artifacts.model.minfo.BedDiffFacet; |
28 import org.dive4elements.river.artifacts.model.minfo.BedDiffHeightMinFacet; | 30 import org.dive4elements.river.artifacts.model.minfo.BedDiffHeightMinFacet; |
29 import org.dive4elements.river.artifacts.model.minfo.BedDiffHeightMinFilterFacet; | 31 import org.dive4elements.river.artifacts.model.minfo.BedDiffHeightMinFilterFacet; |
30 import org.dive4elements.river.artifacts.model.minfo.BedDiffHeightSubFacet; | 32 import org.dive4elements.river.artifacts.model.minfo.BedDiffHeightSubFacet; |
96 generateFacets(context, newFacets, results, getID(), hash); | 98 generateFacets(context, newFacets, results, getID(), hash); |
97 logger.debug("Created " + newFacets.size() + " new Facets."); | 99 logger.debug("Created " + newFacets.size() + " new Facets."); |
98 | 100 |
99 facets.addAll(newFacets); | 101 facets.addAll(newFacets); |
100 | 102 |
103 Calculation report = res.getReport(); | |
104 if (report != null && report.hasProblems()) { | |
105 facets.add(new ReportFacet(ComputeType.ADVANCE, hash, id)); | |
106 logger.warn("Problems: " + report.problemsToString()); | |
107 } | |
108 | |
101 return res; | 109 return res; |
102 } | 110 } |
103 | 111 |
104 /** Generate Facets based on given results. | 112 /** Generate Facets based on given results. |
105 * @param newFacets list to place new facets into. | 113 * @param newFacets list to place new facets into. |
170 1, | 178 1, |
171 true), | 179 true), |
172 ComputeType.ADVANCE, | 180 ComputeType.ADVANCE, |
173 stateId, | 181 stateId, |
174 hash)); | 182 hash)); |
175 newFacets.add(new BedDiffPerYearFacet( | 183 if (((BedDiffYearResult)results[idx]) |
176 idx, | 184 .getHeightPerYearData()[1].length > 0) { |
177 BED_DIFFERENCE_HEIGHT_YEAR, | 185 /* Skip facets with data per year if there are none |
178 createBedDiffAbsoluteDescription( | 186 (because of missing start or end year) */ |
179 meta, | 187 newFacets.add(new BedDiffPerYearFacet( |
180 (BedDiffYearResult)results[idx], | 188 idx, |
181 true), | 189 BED_DIFFERENCE_HEIGHT_YEAR, |
182 ComputeType.ADVANCE, | 190 createBedDiffAbsoluteDescription( |
183 stateId, | 191 meta, |
184 hash)); | 192 (BedDiffYearResult)results[idx], |
193 true), | |
194 ComputeType.ADVANCE, | |
195 stateId, | |
196 hash)); | |
197 newFacets.add(new BedDiffPerYearFilterFacet( | |
198 idx, | |
199 BED_DIFFERENCE_HEIGHT_YEAR_FILTERED, | |
200 createBedDiffAbsoluteDescription( | |
201 meta, | |
202 (BedDiffYearResult)results[idx], | |
203 false), | |
204 ComputeType.ADVANCE, | |
205 stateId, | |
206 hash)); | |
207 } | |
185 newFacets.add(new BedDiffFilterFacet( | 208 newFacets.add(new BedDiffFilterFacet( |
186 idx, | 209 idx, |
187 BED_DIFFERENCE_YEAR_FILTERED, | 210 BED_DIFFERENCE_YEAR_FILTERED, |
188 createBedDiffYearDescription( | 211 createBedDiffYearDescription( |
189 meta, | 212 meta, |
208 BED_DIFFERENCE_YEAR_HEIGHT2_FILTERED, | 231 BED_DIFFERENCE_YEAR_HEIGHT2_FILTERED, |
209 createBedDiffHeightDescription( | 232 createBedDiffHeightDescription( |
210 meta, | 233 meta, |
211 (BedDiffYearResult)results[idx], | 234 (BedDiffYearResult)results[idx], |
212 1, | 235 1, |
213 false), | |
214 ComputeType.ADVANCE, | |
215 stateId, | |
216 hash)); | |
217 newFacets.add(new BedDiffPerYearFilterFacet( | |
218 idx, | |
219 BED_DIFFERENCE_HEIGHT_YEAR_FILTERED, | |
220 createBedDiffAbsoluteDescription( | |
221 meta, | |
222 (BedDiffYearResult)results[idx], | |
223 false), | 236 false), |
224 ComputeType.ADVANCE, | 237 ComputeType.ADVANCE, |
225 stateId, | 238 stateId, |
226 hash)); | 239 hash)); |
227 } | 240 } |
253 protected String createBedDiffYearDescription( | 266 protected String createBedDiffYearDescription( |
254 CallMeta meta, | 267 CallMeta meta, |
255 BedDiffYearResult result, | 268 BedDiffYearResult result, |
256 boolean raw | 269 boolean raw |
257 ) { | 270 ) { |
258 String range = result.getStart() + " - " + result.getEnd(); | 271 String start = result.getStart() != null ? |
272 result.getStart().toString() : result.getNameFirst(); | |
273 String end = result.getEnd() != null ? | |
274 result.getEnd().toString() : result.getNameSecond(); | |
275 String range = start + " - " + end; | |
259 | 276 |
260 String i18n = I18N_FACET_BED_DIFF_YEAR; | 277 String i18n = I18N_FACET_BED_DIFF_YEAR; |
261 if (raw) { | 278 if (raw) { |
262 i18n = I18N_FACET_BED_DIFF_YEAR_RAW; | 279 i18n = I18N_FACET_BED_DIFF_YEAR_RAW; |
263 } | 280 } |
264 return Resources.getMsg(meta, i18n, i18n, new Object[] { range }); | 281 return Resources.getMsg(meta, i18n, new Object[] { range }); |
265 } | 282 } |
266 | 283 |
267 protected String createBedDiffSoundingDescription( | 284 protected String createBedDiffSoundingDescription( |
268 CallMeta meta) { | 285 CallMeta meta) { |
269 return Resources.getMsg(meta, I18N_FACET_BED_DIFF_SOUNDING, | 286 return Resources.getMsg(meta, I18N_FACET_BED_DIFF_SOUNDING, |