Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/fixation/FixAnalysisCompute.java @ 3610:66f539df4e8b
Issue 716.
FixA: Spilt reference and analysis period themes into one theme for each event.
flys-artifacts/trunk@5239 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Thu, 23 Aug 2012 08:49:37 +0000 |
parents | 659c1111db13 |
children | 487a8cb4a222 |
comparison
equal
deleted
inserted
replaced
3609:a16837d73130 | 3610:66f539df4e8b |
---|---|
1 package de.intevation.flys.artifacts.states.fixation; | 1 package de.intevation.flys.artifacts.states.fixation; |
2 | 2 |
3 import java.text.DateFormat; | |
4 import java.util.Date; | |
5 import java.util.Iterator; | |
6 import java.util.List; | |
7 import java.util.TreeSet; | |
8 | |
9 import org.apache.log4j.Logger; | |
10 | |
3 import de.intevation.artifactdatabase.state.Facet; | 11 import de.intevation.artifactdatabase.state.Facet; |
4 | |
5 import de.intevation.artifacts.CallContext; | 12 import de.intevation.artifacts.CallContext; |
6 | |
7 import de.intevation.flys.artifacts.FLYSArtifact; | 13 import de.intevation.flys.artifacts.FLYSArtifact; |
8 | |
9 import de.intevation.flys.artifacts.access.FixAnalysisAccess; | 14 import de.intevation.flys.artifacts.access.FixAnalysisAccess; |
10 | |
11 import de.intevation.flys.artifacts.model.CalculationResult; | 15 import de.intevation.flys.artifacts.model.CalculationResult; |
12 import de.intevation.flys.artifacts.model.DataFacet; | 16 import de.intevation.flys.artifacts.model.DataFacet; |
13 import de.intevation.flys.artifacts.model.DateRange; | 17 import de.intevation.flys.artifacts.model.DateRange; |
14 import de.intevation.flys.artifacts.model.FacetTypes; | 18 import de.intevation.flys.artifacts.model.FacetTypes; |
15 import de.intevation.flys.artifacts.model.ReportFacet; | 19 import de.intevation.flys.artifacts.model.ReportFacet; |
16 | 20 import de.intevation.flys.artifacts.model.fixings.FixAnalysisCalculation; |
17 import de.intevation.flys.artifacts.model.fixings.FixAnalysisEventsFacet; | 21 import de.intevation.flys.artifacts.model.fixings.FixAnalysisEventsFacet; |
18 import de.intevation.flys.artifacts.model.fixings.FixAnalysisPeriodsFacet; | 22 import de.intevation.flys.artifacts.model.fixings.FixAnalysisPeriodsFacet; |
23 import de.intevation.flys.artifacts.model.fixings.FixAnalysisResult; | |
19 import de.intevation.flys.artifacts.model.fixings.FixAvSectorFacet; | 24 import de.intevation.flys.artifacts.model.fixings.FixAvSectorFacet; |
20 import de.intevation.flys.artifacts.model.fixings.FixAnalysisCalculation; | |
21 import de.intevation.flys.artifacts.model.fixings.FixDerivateFacet; | 25 import de.intevation.flys.artifacts.model.fixings.FixDerivateFacet; |
22 import de.intevation.flys.artifacts.model.fixings.FixDeviationFacet; | 26 import de.intevation.flys.artifacts.model.fixings.FixDeviationFacet; |
23 import de.intevation.flys.artifacts.model.fixings.FixLongitudinalAnalysisFacet; | 27 import de.intevation.flys.artifacts.model.fixings.FixLongitudinalAnalysisFacet; |
28 import de.intevation.flys.artifacts.model.fixings.FixLongitudinalAvSectorFacet; | |
24 import de.intevation.flys.artifacts.model.fixings.FixLongitudinalDeviationFacet; | 29 import de.intevation.flys.artifacts.model.fixings.FixLongitudinalDeviationFacet; |
25 import de.intevation.flys.artifacts.model.fixings.FixLongitudinalReferenceFacet; | 30 import de.intevation.flys.artifacts.model.fixings.FixLongitudinalReferenceFacet; |
26 import de.intevation.flys.artifacts.model.fixings.FixOutlierFacet; | 31 import de.intevation.flys.artifacts.model.fixings.FixOutlierFacet; |
27 import de.intevation.flys.artifacts.model.fixings.FixReferenceEventsFacet; | 32 import de.intevation.flys.artifacts.model.fixings.FixReferenceEventsFacet; |
28 import de.intevation.flys.artifacts.model.fixings.FixAnalysisResult; | |
29 import de.intevation.flys.artifacts.model.fixings.FixWQCurveFacet; | 33 import de.intevation.flys.artifacts.model.fixings.FixWQCurveFacet; |
30 | |
31 import de.intevation.flys.artifacts.resources.Resources; | 34 import de.intevation.flys.artifacts.resources.Resources; |
32 | |
33 import de.intevation.flys.artifacts.states.DefaultState; | 35 import de.intevation.flys.artifacts.states.DefaultState; |
34 | |
35 import de.intevation.flys.utils.IdGenerator; | 36 import de.intevation.flys.utils.IdGenerator; |
36 | |
37 import java.text.DateFormat; | |
38 | |
39 import java.util.List; | |
40 | |
41 import org.apache.log4j.Logger; | |
42 | 37 |
43 /** | 38 /** |
44 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> | 39 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> |
45 */ | 40 */ |
46 public class FixAnalysisCompute | 41 public class FixAnalysisCompute |
48 implements FacetTypes | 43 implements FacetTypes |
49 { | 44 { |
50 /** The log used in this class. */ | 45 /** The log used in this class. */ |
51 private static Logger log = Logger.getLogger(FixAnalysisCompute.class); | 46 private static Logger log = Logger.getLogger(FixAnalysisCompute.class); |
52 | 47 |
53 private static final String I18N_REFERENCEPERIOD = "fix.reference.period.events"; | 48 private static final String I18N_REFERENCEPERIOD = "fix.reference.period.event.short"; |
54 | 49 |
55 private static final String I18N_ANALYSISPERIODS = "fix.analysis.periods"; | 50 private static final String I18N_ANALYSISPERIODS = "fix.analysis.periods"; |
56 | 51 |
57 private static final String I18N_DERIVATIVE = "fix.derivative"; | 52 private static final String I18N_DERIVATIVE = "fix.derivative"; |
58 | 53 |
59 private static final String I18N_OUTLIER = "fix.outlier"; | 54 private static final String I18N_OUTLIER = "fix.outlier"; |
60 | 55 |
61 private static final String I18N_ANALYSIS = "fix.analysis"; | 56 private static final String I18N_ANALYSIS = "fix.analysis.short"; |
62 | 57 |
63 private static final String I18N_DEVIATION = "fix.deviation"; | 58 private static final String I18N_DEVIATION = "fix.deviation"; |
64 | 59 |
65 private static final String I18N_REFERENCEDEVIATION = "fix.reference.deviation"; | 60 private static final String I18N_REFERENCEDEVIATION = "fix.reference.deviation"; |
66 | 61 |
107 if (res.getReport().hasProblems()) { | 102 if (res.getReport().hasProblems()) { |
108 facets.add(new ReportFacet(ComputeType.ADVANCE, hash, id)); | 103 facets.add(new ReportFacet(ComputeType.ADVANCE, hash, id)); |
109 } | 104 } |
110 | 105 |
111 FixAnalysisResult fr = (FixAnalysisResult)res.getData(); | 106 FixAnalysisResult fr = (FixAnalysisResult)res.getData(); |
112 | |
113 if (fr == null) { | 107 if (fr == null) { |
114 return res; | 108 return res; |
115 } | 109 } |
116 | 110 |
117 facets.add( | 111 facets.add( |
163 new FixAvSectorFacet( | 157 new FixAvSectorFacet( |
164 facetNdx, | 158 facetNdx, |
165 FIX_SECTOR_AVERAGE_DWT + "_" + sectorNdx, | 159 FIX_SECTOR_AVERAGE_DWT + "_" + sectorNdx, |
166 description)); | 160 description)); |
167 facets.add( | 161 facets.add( |
168 new FixLongitudinalAnalysisFacet( | 162 new FixLongitudinalAvSectorFacet( |
169 facetNdx, | 163 facetNdx, |
170 FIX_SECTOR_AVERAGE_LS + "_" + sectorNdx, | 164 FIX_SECTOR_AVERAGE_LS + "_" + sectorNdx, |
171 description)); | 165 description)); |
172 // TODO: i18n | 166 // TODO: i18n |
173 String dev = "Abweichung: " + description; | 167 String dev = "Abweichung: " + description; |
174 facets.add( | 168 facets.add( |
175 new FixLongitudinalAnalysisFacet( | 169 new FixLongitudinalAvSectorFacet( |
176 facetNdx, | 170 facetNdx, |
177 FIX_SECTOR_AVERAGE_LS_DEVIATION + "_" + sectorNdx, | 171 FIX_SECTOR_AVERAGE_LS_DEVIATION + "_" + sectorNdx, |
178 dev)); | 172 dev)); |
179 facets.add( | 173 facets.add( |
180 new FixAvSectorFacet( | 174 new FixAvSectorFacet( |
185 } | 179 } |
186 | 180 |
187 String eventDesc = | 181 String eventDesc = |
188 Resources.getMsg(context.getMeta(), | 182 Resources.getMsg(context.getMeta(), |
189 I18N_ANALYSIS, | 183 I18N_ANALYSIS, |
190 I18N_ANALYSIS) + | 184 I18N_ANALYSIS); |
191 ": " + startDate + " - " + endDate; | 185 |
192 facets.add(new FixAnalysisEventsFacet(i, | 186 int k = 0; |
193 FIX_ANALYSIS_EVENTS_DWT, | 187 for (Date d: fr.getAnalysisEventsDates(i)) { |
194 eventDesc)); | 188 int anaNdx = i << 8; |
195 facets.add(new FixLongitudinalAnalysisFacet(i, | 189 anaNdx = anaNdx | k; |
196 FIX_ANALYSIS_EVENTS_LS, | 190 facets.add(new FixAnalysisEventsFacet(anaNdx, |
197 eventDesc)); | 191 FIX_ANALYSIS_EVENTS_DWT, |
198 facets.add(new FixAnalysisEventsFacet(i, | 192 eventDesc + (i+1) + " - " + df.format(d))); |
199 FIX_ANALYSIS_EVENTS_WQ, | 193 facets.add(new FixLongitudinalAnalysisFacet(anaNdx, |
200 eventDesc)); | 194 FIX_ANALYSIS_EVENTS_LS, |
195 eventDesc + (i+1) + " - " + df.format(d))); | |
196 facets.add(new FixAnalysisEventsFacet(anaNdx, | |
197 FIX_ANALYSIS_EVENTS_WQ, | |
198 eventDesc + (i+1) +" - " + df.format(d))); | |
199 k++; | |
200 } | |
201 } | 201 } |
202 | 202 |
203 IdGenerator idg = new IdGenerator(maxId + 1); | 203 IdGenerator idg = new IdGenerator(maxId + 1); |
204 | 204 |
205 String i18n_ref = Resources.getMsg(context.getMeta(), | 205 String i18n_ref = Resources.getMsg(context.getMeta(), |
207 I18N_REFERENCEPERIOD); | 207 I18N_REFERENCEPERIOD); |
208 String i18n_dev = Resources.getMsg(context.getMeta(), | 208 String i18n_dev = Resources.getMsg(context.getMeta(), |
209 I18N_REFERENCEDEVIATION, | 209 I18N_REFERENCEDEVIATION, |
210 I18N_REFERENCEDEVIATION); | 210 I18N_REFERENCEDEVIATION); |
211 | 211 |
212 | 212 TreeSet<Date> dates = fr.getReferenceEventsDates(); |
213 facets.add(new FixReferenceEventsFacet(idg.next(), | 213 Iterator<Date> iter = dates.iterator(); |
214 FIX_REFERENCE_EVENTS_DWT, | 214 int i = 0; |
215 i18n_ref)); | 215 while (iter.hasNext()) { |
216 facets.add(new FixLongitudinalReferenceFacet(idg.next(), | 216 Date d = iter.next(); |
217 FIX_REFERENCE_EVENTS_LS, | 217 int refNdx = idg.next() << 8; |
218 i18n_ref)); | 218 refNdx |= i; |
219 facets.add(new FixReferenceEventsFacet(idg.next(), | 219 facets.add(new FixReferenceEventsFacet(refNdx, |
220 FIX_REFERENCE_EVENTS_WQ, | 220 FIX_REFERENCE_EVENTS_DWT, |
221 i18n_ref)); | 221 i18n_ref + " - " + df.format(d))); |
222 refNdx = idg.next() << 8; | |
223 refNdx = refNdx | i; | |
224 facets.add(new FixLongitudinalReferenceFacet(refNdx, | |
225 FIX_REFERENCE_EVENTS_LS, | |
226 i18n_ref + " - " + df.format(d))); | |
227 refNdx = idg.next() << 8; | |
228 refNdx |= i; | |
229 facets.add(new FixReferenceEventsFacet(refNdx, | |
230 FIX_REFERENCE_EVENTS_WQ, | |
231 i18n_ref + " - " + df.format(d))); | |
232 i++; | |
233 } | |
234 | |
222 | 235 |
223 facets.add(new FixLongitudinalDeviationFacet(idg.next(), | 236 facets.add(new FixLongitudinalDeviationFacet(idg.next(), |
224 FIX_DEVIATION_LS, | 237 FIX_DEVIATION_LS, |
225 i18n_dev)); | 238 i18n_dev)); |
226 | 239 |