comparison artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/FlowDepthDevelopmentPerYearProcessor.java @ 8980:b194fa64506a

SINFO - show results themes according to spec, either raw data or floating mean values. Some improvements to error handling and handling of empty results.
author gernotbelger
date Thu, 05 Apr 2018 18:30:34 +0200
parents ee5ce13016ed
children 23945061daec
comparison
equal deleted inserted replaced
8979:951a4af24a09 8980:b194fa64506a
13 import java.util.HashSet; 13 import java.util.HashSet;
14 import java.util.Set; 14 import java.util.Set;
15 15
16 import org.dive4elements.artifactdatabase.state.Facet; 16 import org.dive4elements.artifactdatabase.state.Facet;
17 import org.dive4elements.artifacts.CallContext; 17 import org.dive4elements.artifacts.CallContext;
18 import org.dive4elements.river.artifacts.resources.Resources;
19 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
20 18
21 public final class FlowDepthDevelopmentPerYearProcessor extends AbstractSInfoLineProcessor<AbstractSInfoCalculationResult> { 19 public final class FlowDepthDevelopmentPerYearProcessor extends AbstractSInfoLineProcessor<AbstractSInfoCalculationResult> {
22 20
23 private static final String I18N_AXIS_LABEL = "sinfo.chart.flow_depth_development_per_year.section.yaxis.label"; 21 private static final String I18N_AXIS_LABEL = "sinfo.chart.flow_depth_development_per_year.section.yaxis.label";
24 22
25 private static final String SINFO_CHART_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_YAXIS_LABEL = "sinfo.chart.flow_depth_development_per_year.yaxis.label"; 23 private static final String SINFO_CHART_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_YAXIS_LABEL = "sinfo.chart.flow_depth_development_per_year.yaxis.label";
26 24
27 /* Theme name, usually defined in 'FacetTypes', but that is soooo bad dependencies... */ 25 /* Theme name, usually defined in 'FacetTypes', but that is soooo bad dependencies... */
28 // REMARK: these mustend with 'filtered' so extra handling happens in chart: point are always recalculated, because data 26 // REMARK: these must end with 'filtered' so extra handling happens in chart: point are always recalculated, because
27 // data
29 // changes depending on zoom state 28 // changes depending on zoom state
29
30 public static final String FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED = "sinfo_facet_flow_depth_development_per_year.filtered"; 30 public static final String FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED = "sinfo_facet_flow_depth_development_per_year.filtered";
31 31
32 private static final String I18N_FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED_DESCRIPTION = "sinfo.facet.flow_depth_development_per_year.filtered.description"; 32 private static final String FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED_DESCRIPTION = "sinfo.facet.flow_depth_development_per_year.filtered.description";
33
34 public static final String FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_RAW = "sinfo_facet_flow_depth_development_per_year";
35
36 private static final String FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_RAW_DESCRIPTION = "sinfo.facet.flow_depth_development_per_year.raw.description";
33 37
34 private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>(); 38 private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>();
35 39
36 static { 40 static {
37 HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED); 41 HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED);
42 HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_RAW);
38 } 43 }
39 44
40 public FlowDepthDevelopmentPerYearProcessor() { 45 public FlowDepthDevelopmentPerYearProcessor() {
41 super(I18N_AXIS_LABEL, HANDLED_FACET_TYPES); 46 super(I18N_AXIS_LABEL, HANDLED_FACET_TYPES);
42 } 47 }
44 @Override 49 @Override
45 protected double[][] doGetPoints(final AbstractSInfoCalculationResult data, final String facetName) { 50 protected double[][] doGetPoints(final AbstractSInfoCalculationResult data, final String facetName) {
46 51
47 if (FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED.contentEquals(facetName)) 52 if (FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED.contentEquals(facetName))
48 return data.getStationPoints(SInfoResultType.flowdepthDevelopmentPerYear); 53 return data.getStationPoints(SInfoResultType.flowdepthDevelopmentPerYear);
54 if (FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_RAW.contentEquals(facetName))
55 return data.getStationPoints(SInfoResultType.flowdepthDevelopmentPerYear);
49 56
50 final String error = String.format("Unknown facet name: %s", facetName); 57 final String error = String.format("Unknown facet name: %s", facetName);
51 throw new UnsupportedOperationException(error); 58 throw new UnsupportedOperationException(error);
52 } 59 }
53 60
54 public static Facet createFlowDepthDevelopmentFacet(final CallContext context, final String hash, final String id, 61 public static Facet createFlowDepthDevelopmentFilteredFacet(final CallContext context, final String hash, final String id,
55 final AbstractSInfoCalculationResult result, final int index) { 62 final AbstractSInfoCalculationResult result, final int index) {
56 final String facetFlowDepthFilteredDescription = Resources.getMsg(context.getMeta(), I18N_FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED_DESCRIPTION, 63 return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_YAXIS_LABEL,
57 I18N_FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED_DESCRIPTION, result.getLabel()); 64 FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED, FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED_DESCRIPTION);
58 return new SInfoResultFacet(index, FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_FILTERED, facetFlowDepthFilteredDescription, 65 }
59 SINFO_CHART_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_YAXIS_LABEL, ComputeType.ADVANCE, id, hash); 66
67 public static Facet createFlowDepthDevelopmentRawFacet(final CallContext context, final String hash, final String id,
68 final AbstractSInfoCalculationResult result, final int index) {
69 return AbstractSInfoLineProcessor.createFacet(context, hash, id, result, index, SINFO_CHART_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_YAXIS_LABEL,
70 FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_RAW, FACET_FLOW_DEPTH_DEVELOPMENT_PER_YEAR_RAW_DESCRIPTION);
60 } 71 }
61 } 72 }

http://dive4elements.wald.intevation.org