annotate artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/CollisionCalcProcessor.java @ 9204:4f411c6ee3ae

Individual facets/themes for single years i the S-Info collisions output
author mschaefer
date Mon, 02 Jul 2018 17:40:39 +0200
parents 6393e05a9610
children 3dae6b78e1da
rev   line source
9157
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
2 * Software engineering by
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
5 *
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
9 */
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
10
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
11 package org.dive4elements.river.artifacts.sinfo.common;
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
12
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
13 import java.util.HashSet;
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
14 import java.util.Set;
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
15
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
16 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
17 import org.dive4elements.artifactdatabase.state.Facet;
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
18 import org.dive4elements.artifacts.CallContext;
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
19 import org.dive4elements.river.artifacts.common.AbstractCalculationResult;
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
20 import org.dive4elements.river.artifacts.resources.Resources;
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
21 import org.dive4elements.river.artifacts.sinfo.collision.CollisionCalcFacet;
9204
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
22 import org.dive4elements.river.artifacts.sinfo.collision.CollisionCalcOverviewResult;
9157
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
23 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
24 import org.dive4elements.river.exports.DiagramGenerator;
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
25 import org.dive4elements.river.themes.ThemeDocument;
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
26
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
27 /**
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
28 * Processor to generate the facet and data series of calculated bed collision counts
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
29 *
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
30 * @author Matthias Schäfer
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
31 *
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
32 */
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
33 public final class CollisionCalcProcessor extends AbstractSInfoProcessor {
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
34
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
35 public static final String FACET_COLLISION_CALC_COUNT = "sinfo_facet_collision_calc_count";
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
36
9204
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
37 public static final String FACET_COLLISION_CALC_COUNT_2 = "sinfo_facet_collision_calc_count.2";
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
38
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
39 public static final String FACET_COLLISION_CALC_COUNT_3 = "sinfo_facet_collision_calc_count.3";
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
40
9157
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
41 private static final String I18N_AXIS_LABEL = "chart.collision_count.section.yaxis.label";
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
42
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
43 private static final String I18N_SERIES_NAME_PATTERN = "collision.count.title";
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
44
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
45 private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>();
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
46
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
47 static {
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
48 HANDLED_FACET_TYPES.add(FACET_COLLISION_CALC_COUNT);
9204
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
49 HANDLED_FACET_TYPES.add(FACET_COLLISION_CALC_COUNT_2);
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
50 HANDLED_FACET_TYPES.add(FACET_COLLISION_CALC_COUNT_3);
9157
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
51 }
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
52
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
53 public CollisionCalcProcessor() {
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
54 super(I18N_AXIS_LABEL, HANDLED_FACET_TYPES);
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
55 }
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
56
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
57 @Override
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
58 protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) {
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
59
9204
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
60 return buildSeriesForType1(generator, bundle, theme, visible, SInfoResultType.collisionCount, null);
9157
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
61 }
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
62
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
63 public static final Facet createFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result,
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
64 final int index) {
9204
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
65
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
66 final CollisionCalcOverviewResult ccoResult = (CollisionCalcOverviewResult) result;
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
67 String facetDescription;
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
68 String facetName;
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
69 if (ccoResult.getSingleYears() == null) {
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
70 facetDescription = Resources.getMsg(context.getMeta(), I18N_SERIES_NAME_PATTERN, I18N_SERIES_NAME_PATTERN, result.getLabel());
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
71 facetName = FACET_COLLISION_CALC_COUNT;
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
72 }
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
73 else {
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
74 facetDescription = Resources.getMsg(context.getMeta(), I18N_SERIES_NAME_PATTERN, I18N_SERIES_NAME_PATTERN,
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
75 Integer.toString(ccoResult.getSingleYears()[index]));
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
76 facetName = new String[] { FACET_COLLISION_CALC_COUNT, FACET_COLLISION_CALC_COUNT_2, FACET_COLLISION_CALC_COUNT_3 }[index % 3].toString();
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
77 }
4f411c6ee3ae Individual facets/themes for single years i the S-Info collisions output
mschaefer
parents: 9200
diff changeset
78 return new CollisionCalcFacet(index, facetName, facetDescription, I18N_AXIS_LABEL, ComputeType.ADVANCE, id, hash);
9157
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
79 }
f9bb5d0a6ff3 Added the S-Info collision calculation and chart output
mschaefer
parents:
diff changeset
80 }

http://dive4elements.wald.intevation.org