comparison artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/FlowDepthWaterlevelProcessor.java @ 9707:23702537fb4f

zu 2.1 y-Achsenbeschriftung Sohlhöhen
author dnt_bjoernsen <d.tironi@bjoernsen.de>
date Fri, 22 Jan 2021 15:47:55 +0100
parents 1d4262a68f1f
children
comparison
equal deleted inserted replaced
9706:299c1c61d8ef 9707:23702537fb4f
23 import org.dive4elements.river.exports.DiagramGenerator; 23 import org.dive4elements.river.exports.DiagramGenerator;
24 import org.dive4elements.river.themes.ThemeDocument; 24 import org.dive4elements.river.themes.ThemeDocument;
25 25
26 public final class FlowDepthWaterlevelProcessor extends AbstractProcessor { 26 public final class FlowDepthWaterlevelProcessor extends AbstractProcessor {
27 27
28 /* waterlevel */ 28 /* waterlevel */
29 public static final String FACET_FLOW_DEPTH_BEDHEIGHT_MIN = "sinfo_facet_flow_depth_bedheight_min"; 29 public static final String FACET_FLOW_DEPTH_BEDHEIGHT_MIN = "sinfo_facet_flow_depth_bedheight_min";
30 public static final String FACET_FLOW_DEPTH_BEDHEIGHT_MAX = "sinfo_facet_flow_depth_bedheight_max"; 30 public static final String FACET_FLOW_DEPTH_BEDHEIGHT_MAX = "sinfo_facet_flow_depth_bedheight_max";
31 public static final String FACET_FLOW_DEPTH_BEDHEIGHT = "sinfo_facet_flow_depth_bedheight"; 31 public static final String FACET_FLOW_DEPTH_BEDHEIGHT = "sinfo_facet_flow_depth_bedheight";
32 public static final String FACET_FLOW_DEPTH_WATER_LEVEL = "sinfo_facet_flow_depth_waterlevel"; 32 public static final String FACET_FLOW_DEPTH_WATER_LEVEL = "sinfo_facet_flow_depth_waterlevel";
33 public static final String FACET_FLOW_DEPTH_WATER_LEVEL_Y_AXIS_LABEL = "chart.longitudinal.section.yaxis.label"; 33 private static final String FACET_FLOW_DEPTH_WATER_LEVEL_Y_AXIS_LABEL = "chart.longitudinal.section.yaxis.label";
34 public static final String FACET_FLOW_DEPTH_WATER_LEVEL_DESCRIPTION = "facet.flow_depth.waterlevel"; 34 private static final String FACET_BEDHEIGHT_Y_AXIS_LABEL = "chart.bedheight_middle.section.yaxis.label";
35 public static final String FACET_FLOW_DEPTH_BEDHEIGHT_DESCRIPTION = "facet.flow_depth.bedheight";
36 public static final String FACET_FLOW_DEPTH_BEDHEIGHT_DESCRIPTION_MIN = "facet.flow_depth.bedheight.min";
37 public static final String FACET_FLOW_DEPTH_BEDHEIGHT_DESCRIPTION_MAX = "facet.flow_depth.bedheight.max";
38 35
39 private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>(); 36 public static final String FACET_FLOW_DEPTH_WATER_LEVEL_DESCRIPTION = "facet.flow_depth.waterlevel";
37 public static final String FACET_FLOW_DEPTH_BEDHEIGHT_DESCRIPTION = "facet.flow_depth.bedheight";
38 public static final String FACET_FLOW_DEPTH_BEDHEIGHT_DESCRIPTION_MIN = "facet.flow_depth.bedheight.min";
39 public static final String FACET_FLOW_DEPTH_BEDHEIGHT_DESCRIPTION_MAX = "facet.flow_depth.bedheight.max";
40 40
41 static { 41 private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>();
42 HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_WATER_LEVEL);
43 HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_BEDHEIGHT);
44 HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_BEDHEIGHT_MIN);
45 HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_BEDHEIGHT_MAX);
46 }
47 42
48 public FlowDepthWaterlevelProcessor() { 43 static {
49 super(FACET_FLOW_DEPTH_WATER_LEVEL_Y_AXIS_LABEL, HANDLED_FACET_TYPES); 44 HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_WATER_LEVEL);
50 } 45 HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_BEDHEIGHT);
46 HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_BEDHEIGHT_MIN);
47 HANDLED_FACET_TYPES.add(FACET_FLOW_DEPTH_BEDHEIGHT_MAX);
48 }
51 49
52 protected SInfoResultType doGetType(final String facetName) { 50 public FlowDepthWaterlevelProcessor() {
51 super(FACET_FLOW_DEPTH_WATER_LEVEL_Y_AXIS_LABEL, HANDLED_FACET_TYPES);
52 }
53 53
54 if (FACET_FLOW_DEPTH_WATER_LEVEL.contentEquals(facetName)) 54 protected SInfoResultType doGetType(final String facetName) {
55 return SInfoResultType.waterlevel;
56 if (FACET_FLOW_DEPTH_BEDHEIGHT.contentEquals(facetName))
57 return SInfoResultType.meanBedHeight;
58 if (FACET_FLOW_DEPTH_BEDHEIGHT_MIN.contentEquals(facetName))
59 return SInfoResultType.minBedHeight;
60 if (FACET_FLOW_DEPTH_BEDHEIGHT_MAX.contentEquals(facetName))
61 return SInfoResultType.maxBedHeight;
62 55
63 final String error = String.format("Unknown facet name: %s", facetName); 56 if (FACET_FLOW_DEPTH_WATER_LEVEL.contentEquals(facetName))
64 throw new UnsupportedOperationException(error); 57 return SInfoResultType.waterlevel;
65 } 58 if (FACET_FLOW_DEPTH_BEDHEIGHT.contentEquals(facetName))
59 return SInfoResultType.meanBedHeight;
60 if (FACET_FLOW_DEPTH_BEDHEIGHT_MIN.contentEquals(facetName))
61 return SInfoResultType.minBedHeight;
62 if (FACET_FLOW_DEPTH_BEDHEIGHT_MAX.contentEquals(facetName))
63 return SInfoResultType.maxBedHeight;
66 64
67 private static Facet createFlowDepthBedheightFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result, 65 final String error = String.format("Unknown facet name: %s", facetName);
68 final int index, final String unit, final String facetLabel, final String facetName, final String description) { 66 throw new UnsupportedOperationException(error);
69 final CallMeta meta = context.getMeta(); 67 }
70 final String yAxisLabel = Resources.getMsg(meta, FACET_FLOW_DEPTH_WATER_LEVEL_Y_AXIS_LABEL, FACET_FLOW_DEPTH_WATER_LEVEL_Y_AXIS_LABEL, unit);
71 68
72 return AbstractProcessor.createFacet(context, hash, id, result, index, yAxisLabel, facetName, description, facetLabel); 69 private static Facet createFlowDepthBedheightFacet(final CallContext context, final String hash, final String id,
73 } 70 final AbstractCalculationResult result, final int index, final String unit, final String facetLabel,
71 final String facetName, final String description) {
72 final CallMeta meta = context.getMeta();
73 final String yAxisLabel = Resources.getMsg(meta, FACET_BEDHEIGHT_Y_AXIS_LABEL,
74 FACET_BEDHEIGHT_Y_AXIS_LABEL, unit);
74 75
75 public static Facet createFlowDepthMeanBedheightFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result, 76 return AbstractProcessor.createFacet(context, hash, id, result, index, yAxisLabel, facetName, description,
76 final int index, final String unit, final String facetLabel) { 77 facetLabel);
77 return FlowDepthWaterlevelProcessor.createFlowDepthBedheightFacet(context, hash, id, result, index, unit, facetLabel, FACET_FLOW_DEPTH_BEDHEIGHT, 78 }
78 FACET_FLOW_DEPTH_BEDHEIGHT_DESCRIPTION);
79 }
80 79
81 public static Facet createFlowDepthMinBedheightFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result, 80 public static Facet createFlowDepthMeanBedheightFacet(final CallContext context, final String hash, final String id,
82 final int index, final String unit, final String facetLabel) { 81 final AbstractCalculationResult result, final int index, final String unit, final String facetLabel) {
83 return FlowDepthWaterlevelProcessor.createFlowDepthBedheightFacet(context, hash, id, result, index, unit, facetLabel, FACET_FLOW_DEPTH_BEDHEIGHT_MIN, 82 return FlowDepthWaterlevelProcessor.createFlowDepthBedheightFacet(context, hash, id, result, index, unit,
84 FACET_FLOW_DEPTH_BEDHEIGHT_DESCRIPTION_MIN); 83 facetLabel, FACET_FLOW_DEPTH_BEDHEIGHT, FACET_FLOW_DEPTH_BEDHEIGHT_DESCRIPTION);
85 } 84 }
86 85
87 public static Facet createFlowDepthMaxBedheightFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result, 86 public static Facet createFlowDepthMinBedheightFacet(final CallContext context, final String hash, final String id,
88 final int index, final String unit, final String facetLabel) { 87 final AbstractCalculationResult result, final int index, final String unit, final String facetLabel) {
89 return FlowDepthWaterlevelProcessor.createFlowDepthBedheightFacet(context, hash, id, result, index, unit, facetLabel, FACET_FLOW_DEPTH_BEDHEIGHT_MAX, 88 return FlowDepthWaterlevelProcessor.createFlowDepthBedheightFacet(context, hash, id, result, index, unit,
90 FACET_FLOW_DEPTH_BEDHEIGHT_DESCRIPTION_MAX); 89 facetLabel, FACET_FLOW_DEPTH_BEDHEIGHT_MIN, FACET_FLOW_DEPTH_BEDHEIGHT_DESCRIPTION_MIN);
91 } 90 }
92 91
93 public static Facet createFlowDepthWaterlevelFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result, 92 public static Facet createFlowDepthMaxBedheightFacet(final CallContext context, final String hash, final String id,
94 final int index, final String unit, final String wstLabel) { 93 final AbstractCalculationResult result, final int index, final String unit, final String facetLabel) {
95 final CallMeta meta = context.getMeta(); 94 return FlowDepthWaterlevelProcessor.createFlowDepthBedheightFacet(context, hash, id, result, index, unit,
96 final String yAxisLabel = Resources.getMsg(meta, FACET_FLOW_DEPTH_WATER_LEVEL_Y_AXIS_LABEL, FACET_FLOW_DEPTH_WATER_LEVEL_Y_AXIS_LABEL, unit); 95 facetLabel, FACET_FLOW_DEPTH_BEDHEIGHT_MAX, FACET_FLOW_DEPTH_BEDHEIGHT_DESCRIPTION_MAX);
97 return AbstractProcessor.createFacet(context, hash, id, result, index, yAxisLabel, FACET_FLOW_DEPTH_WATER_LEVEL, 96 }
98 FACET_FLOW_DEPTH_WATER_LEVEL_DESCRIPTION, wstLabel);
99 }
100 97
101 @Override 98 public static Facet createFlowDepthWaterlevelFacet(final CallContext context, final String hash, final String id,
102 protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) { 99 final AbstractCalculationResult result, final int index, final String unit, final String wstLabel) {
100 final CallMeta meta = context.getMeta();
101 final String yAxisLabel = Resources.getMsg(meta, FACET_FLOW_DEPTH_WATER_LEVEL_Y_AXIS_LABEL,
102 FACET_FLOW_DEPTH_WATER_LEVEL_Y_AXIS_LABEL, unit);
103 return AbstractProcessor.createFacet(context, hash, id, result, index, yAxisLabel, FACET_FLOW_DEPTH_WATER_LEVEL,
104 FACET_FLOW_DEPTH_WATER_LEVEL_DESCRIPTION, wstLabel);
105 }
103 106
104 return buildSeriesForType(generator, bundle, theme, visible, doGetType(bundle.getFacetName()), GAP_DISTANCE); 107 @Override
105 } 108 protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle,
109 final ThemeDocument theme, final boolean visible) {
110
111 return buildSeriesForType(generator, bundle, theme, visible, doGetType(bundle.getFacetName()), GAP_DISTANCE);
112 }
106 } 113 }

http://dive4elements.wald.intevation.org