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

refactoring on processors
author gernotbelger
date Fri, 29 Jun 2018 16:29:23 +0200
parents a4121ec450d6
children 4f411c6ee3ae
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; 18 import org.dive4elements.artifacts.CallContext;
21 import org.dive4elements.river.artifacts.common.AbstractCalculationResult; 19 import org.dive4elements.river.artifacts.common.AbstractCalculationResult;
22 import org.dive4elements.river.artifacts.common.IResultType;
23 import org.dive4elements.river.artifacts.resources.Resources; 20 import org.dive4elements.river.artifacts.resources.Resources;
24 import org.dive4elements.river.artifacts.sinfo.collision.CollisionCalcFacet; 21 import org.dive4elements.river.artifacts.sinfo.collision.CollisionCalcFacet;
25 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType; 22 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
26 import org.dive4elements.river.exports.DiagramGenerator; 23 import org.dive4elements.river.exports.DiagramGenerator;
27 import org.dive4elements.river.exports.StyledSeriesBuilder;
28 import org.dive4elements.river.jfree.StyledXYSeries;
29 import org.dive4elements.river.themes.ThemeDocument; 24 import org.dive4elements.river.themes.ThemeDocument;
30 25
31 /** 26 /**
32 * Processor to generate the facet and data series of calculated bed collision counts 27 * Processor to generate the facet and data series of calculated bed collision counts
33 * 28 *
53 } 48 }
54 49
55 @Override 50 @Override
56 protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) { 51 protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) {
57 52
58 return buildSeriesForType(generator, bundle, theme, visible, SInfoResultType.collisionCount); 53 return buildSeriesForType(generator, bundle, theme, visible, SInfoResultType.collisionCount, null);
59 }
60
61 // FIXME: move to super classs and use in many implementations
62 protected final String buildSeriesForType(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible,
63 final IResultType resultType) {
64 final CallContext context = generator.getContext();
65 final Map<String, String> metaData = bundle.getFacet().getMetaData();
66
67 final Artifact artifact = bundle.getArtifact();
68
69 final StyledXYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme);
70 series.putMetaData(metaData, artifact, context);
71
72 final String facetName = bundle.getFacetName();
73
74 final AbstractCalculationResult data = (AbstractCalculationResult) bundle.getData(context);
75 if (data == null) {
76 // Check has been here before so we keep it for security reasons
77 // this should never happen though.
78 throw new IllegalStateException("Data is null for facet: " + facetName);
79 }
80
81 final double[][] points = data.getStationPoints(resultType);
82
83 StyledSeriesBuilder.addPoints(series, points, true);
84 generator.addAxisSeries(series, getAxisName(), visible);
85
86 return metaData.get("Y");
87 } 54 }
88 55
89 public static final Facet createFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result, 56 public static final Facet createFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result,
90 final int index) { 57 final int index) {
91 final String facetDescription = Resources.getMsg(context.getMeta(), I18N_SERIES_NAME_PATTERN, I18N_SERIES_NAME_PATTERN, result.getLabel()); 58 final String facetDescription = Resources.getMsg(context.getMeta(), I18N_SERIES_NAME_PATTERN, I18N_SERIES_NAME_PATTERN, result.getLabel());

http://dive4elements.wald.intevation.org