annotate artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/predefinedtkh/PredefinedTkhArtifact.java @ 9016:6e5ff436febe

Added datacage select and chart display for TKH series loaded from database
author mschaefer
date Mon, 23 Apr 2018 15:18:48 +0200
parents
children
rev   line source
9016
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
2 * Software engineering by
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
5 *
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
9 */
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
10
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
11 package org.dive4elements.river.artifacts.sinfo.predefinedtkh;
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
12
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
13 import java.util.ArrayList;
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
14 import java.util.List;
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
15
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
16 import org.apache.log4j.Logger;
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
17 import org.dive4elements.artifactdatabase.state.DefaultOutput;
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
18 import org.dive4elements.artifactdatabase.state.Facet;
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
19 import org.dive4elements.artifactdatabase.state.FacetActivity;
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
20 import org.dive4elements.artifacts.Artifact;
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
21 import org.dive4elements.artifacts.ArtifactFactory;
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
22 import org.dive4elements.artifacts.CallMeta;
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
23 import org.dive4elements.artifacts.common.utils.XMLUtils;
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
24 import org.dive4elements.river.artifacts.AbstractStaticStateArtifact;
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
25 import org.dive4elements.river.artifacts.D4EArtifact;
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
26 import org.dive4elements.river.artifacts.model.FacetTypes;
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
27 import org.dive4elements.river.artifacts.sinfo.common.PredefinedTkhProcessor;
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
28 import org.dive4elements.river.artifacts.states.StaticState;
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
29 import org.dive4elements.river.model.sinfo.TkhColumn;
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
30 import org.w3c.dom.Document;
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
31
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
32 /**
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
33 * Display of a tkh data series loaded from database
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
34 *
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
35 * @author Matthias Schäfer
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
36 *
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
37 */
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
38 public class PredefinedTkhArtifact extends AbstractStaticStateArtifact implements FacetTypes {
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
39
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
40 /** The log for this class. */
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
41 private static Logger log = Logger.getLogger(PredefinedTkhArtifact.class);
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
42
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
43 /** Artifact name. */
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
44 private static final String NAME = "tkhx";
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
45
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
46 static {
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
47 // TODO: Move to configuration.
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
48 FacetActivity.Registry.getInstance().register(NAME, FacetActivity.INACTIVE);
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
49 }
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
50
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
51 public static final String STATIC_STATE_NAME = "state.predefined_tkh.static";
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
52
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
53 /**
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
54 * Trivial Constructor.
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
55 */
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
56 public PredefinedTkhArtifact() {
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
57 log.debug("new PredefinedTkhArtifact");
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
58 }
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
59
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
60 @Override
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
61 public String getName() {
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
62 return NAME;
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
63 }
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
64
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
65 /**
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
66 * Gets called from factory, to set things up.
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
67 */
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
68 @Override
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
69 public void setup(final String identifier, final ArtifactFactory factory, final Object context, final CallMeta callMeta, final Document data,
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
70 final List<Class> loadFacets) {
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
71
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
72 log.debug("PredefinedTkhArtifact.setup");
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
73
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
74 if (log.isDebugEnabled()) {
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
75 log.debug(XMLUtils.toString(data));
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
76 }
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
77
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
78 final String code = getDatacageIDValue(data);
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
79
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
80 createFacets(callMeta, code);
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
81
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
82 super.setup(identifier, factory, context, callMeta, data, loadFacets);
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
83 }
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
84
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
85 private void createFacets(final CallMeta callMeta, final String code) {
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
86 if (code == null)
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
87 return;
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
88 final String[] parts = code.split("-");
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
89 if (parts.length < 3) {
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
90 log.error("Invalid datacage ID '" + code + "'");
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
91 return;
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
92 }
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
93 addStringData("tkh_col_id", parts[1]);
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
94 addStringData("tkh_id", parts[2]);
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
95 final TkhColumn tkhcol = TkhColumn.getTkhColumnById(Integer.parseInt(parts[1]));
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
96
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
97 final ArrayList<Facet> facets = new ArrayList<>(1);
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
98 facets.add(new PredefinedTkhFacet(PredefinedTkhProcessor.FACET_PREDEFINED_TKH, tkhcol.getName() + " (" + tkhcol.getTkh().getFilename() + ")"));
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
99 addFacets(STATIC_STATE_NAME, facets);
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
100 }
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
101
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
102 @Override
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
103 protected void initStaticState() {
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
104
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
105 log.debug("initStaticState " + getName() + " " + identifier());
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
106
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
107 final StaticState state = new StaticState(STATIC_STATE_NAME);
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
108 final DefaultOutput output = new DefaultOutput("general", "general", "image/png", "chart");
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
109
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
110 final List<Facet> facets = getFacets(STATIC_STATE_NAME);
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
111 output.addFacets(facets);
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
112 state.addOutput(output);
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
113
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
114 setStaticState(state);
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
115 }
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
116
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
117 @Override
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
118 protected void initialize(final Artifact artifact, final Object context, final CallMeta meta) {
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
119 // do not clone facets, etc. from master artifact
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
120
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
121 log.debug("initialize");
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
122 importData((D4EArtifact) artifact, "river");
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
123 importData((D4EArtifact) artifact, "ld_from");
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
124 importData((D4EArtifact) artifact, "ld_to");
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
125
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
126 log.debug("ld_from " + getDataAsString("ld_from"));
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
127 log.debug("ld_to " + getDataAsString("ld_to"));
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
128 }
6e5ff436febe Added datacage select and chart display for TKH series loaded from database
mschaefer
parents:
diff changeset
129 }

http://dive4elements.wald.intevation.org