comparison artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/PredefinedChannelDepthProcessor.java @ 9200:6393e05a9610

refactoring on processors
author gernotbelger
date Fri, 29 Jun 2018 16:29:23 +0200
parents a4121ec450d6
children 610b7b00b407
comparison
equal deleted inserted replaced
9199:d177121fc95d 9200:6393e05a9610
9 */ 9 */
10 10
11 package org.dive4elements.river.artifacts.sinfo.common; 11 package org.dive4elements.river.artifacts.sinfo.common;
12 12
13 import java.util.HashSet; 13 import java.util.HashSet;
14 import java.util.Map;
15 import java.util.Set; 14 import java.util.Set;
16 15
17 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; 16 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
18 import org.dive4elements.artifactdatabase.state.Facet; 17 import org.dive4elements.artifactdatabase.state.Facet;
19 import org.dive4elements.artifacts.Artifact;
20 import org.dive4elements.artifacts.CallContext;
21 import org.dive4elements.artifacts.CallMeta; 18 import org.dive4elements.artifacts.CallMeta;
22 import org.dive4elements.river.artifacts.common.AbstractCalculationResult;
23 import org.dive4elements.river.artifacts.resources.Resources; 19 import org.dive4elements.river.artifacts.resources.Resources;
24 import org.dive4elements.river.artifacts.sinfo.predefinedchannel.PredefinedChannelFacet; 20 import org.dive4elements.river.artifacts.sinfo.predefinedchannel.PredefinedChannelFacet;
25 import org.dive4elements.river.exports.DiagramGenerator; 21 import org.dive4elements.river.exports.DiagramGenerator;
26 import org.dive4elements.river.exports.StyledSeriesBuilder;
27 import org.dive4elements.river.jfree.StyledXYSeries;
28 import org.dive4elements.river.themes.ThemeDocument; 22 import org.dive4elements.river.themes.ThemeDocument;
29 23
30 /** 24 /**
31 * Processor to generate a data series for river channel depth data loaded from the database 25 * Processor to generate a data series for river channel depth data loaded from the database
32 * 26 *
51 45
52 public PredefinedChannelDepthProcessor() { 46 public PredefinedChannelDepthProcessor() {
53 super(I18N_AXIS_LABEL, HANDLED_FACET_TYPES); 47 super(I18N_AXIS_LABEL, HANDLED_FACET_TYPES);
54 } 48 }
55 49
56 @Override
57 protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) {
58
59 final CallContext context = generator.getContext();
60 final Map<String, String> metaData = bundle.getFacet().getMetaData();
61
62 final Artifact artifact = bundle.getArtifact();
63
64 final StyledXYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme);
65 series.putMetaData(metaData, artifact, context);
66
67 final String facetName = bundle.getFacetName();
68 final AbstractCalculationResult data = (AbstractCalculationResult) bundle.getData(context);
69 if (data == null) {
70 // Check has been here before so we keep it for security reasons
71 // this should never happen though.
72 throw new IllegalStateException("Data is null for facet: " + facetName);
73 }
74
75 final double[][] points = data.getStationPoints(SInfoResultType.channelDepth);
76
77 StyledSeriesBuilder.addPoints(series, points, true);
78 generator.addAxisSeries(series, getAxisName(), visible);
79
80 return metaData.get("Y");
81 }
82
83 public static Facet createFacet(final CallMeta callMeta, final String seriesName) { 50 public static Facet createFacet(final CallMeta callMeta, final String seriesName) {
84 return new PredefinedChannelFacet(FACET_PREDEFINED_CHANNEL_DEPTH, 51 return new PredefinedChannelFacet(FACET_PREDEFINED_CHANNEL_DEPTH,
85 Resources.getMsg(callMeta, I18N_SERIES_NAME_PATTERN, I18N_SERIES_NAME_PATTERN, seriesName), I18N_AXIS_LABEL); 52 Resources.getMsg(callMeta, I18N_SERIES_NAME_PATTERN, I18N_SERIES_NAME_PATTERN, seriesName), I18N_AXIS_LABEL);
86 } 53 }
54
55 @Override
56 protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) {
57
58 return buildSeriesForType(generator, bundle, theme, visible, SInfoResultType.collisionCount, null);
59 }
87 } 60 }

http://dive4elements.wald.intevation.org