Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/StaticMorphWidthArtifact.java @ 8755:30b1ddadf275
(issue1801) Unify reference gauge finding code
The basic way as described in the method comment of the
determineRefGauge method is now used in the WINFOArtifact,
MainValuesService and RiverUtils.getGauge method.
RiverUtils.getGauge previously just returned the first
gauge found. While this is now a behavior change I believe
that it is always more correct then the undeterministic
behavior of the previous implmenentation.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Wed, 24 Jun 2015 14:07:26 +0200 |
parents | e4606eae8ea5 |
children | 5e38e2924c07 |
rev | line source |
---|---|
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5778
diff
changeset
|
9 package org.dive4elements.river.artifacts; |
5764
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 import java.util.ArrayList; |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 import java.util.List; |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 import org.apache.log4j.Logger; |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 import org.w3c.dom.Document; |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5778
diff
changeset
|
17 import org.dive4elements.artifactdatabase.state.DefaultOutput; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5778
diff
changeset
|
18 import org.dive4elements.artifactdatabase.state.Facet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5778
diff
changeset
|
19 import org.dive4elements.artifactdatabase.state.FacetActivity; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5778
diff
changeset
|
20 import org.dive4elements.artifacts.ArtifactFactory; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5778
diff
changeset
|
21 import org.dive4elements.artifacts.Artifact; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5778
diff
changeset
|
22 import org.dive4elements.artifacts.CallMeta; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5778
diff
changeset
|
23 import org.dive4elements.artifacts.common.utils.XMLUtils; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5778
diff
changeset
|
24 import org.dive4elements.river.artifacts.model.minfo.MorphologicWidthFacet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5778
diff
changeset
|
25 import org.dive4elements.river.artifacts.resources.Resources; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5778
diff
changeset
|
26 import org.dive4elements.river.artifacts.states.StaticState; |
5764
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 public class StaticMorphWidthArtifact |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 extends AbstractStaticStateArtifact |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7842
diff
changeset
|
31 /** The log for this class. */ |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7842
diff
changeset
|
32 private static Logger log = |
5764
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
33 Logger.getLogger(StaticMorphWidthArtifact.class); |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 private static final String NAME = "morph-width"; |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 private static final String STATIC_FACET_NAME = "morph-width"; |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
37 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 static { |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 // TODO: Move to configuration. |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 FacetActivity.Registry.getInstance() |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 .register(NAME, FacetActivity.INACTIVE); |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 } |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 public static final String STATIC_STATE_NAME = |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 "state.morph-width.static"; |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 /** |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 * Trivial Constructor. |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 */ |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 public StaticMorphWidthArtifact() { |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 } |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 @Override |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 public String getName() { |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 return NAME; |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
56 } |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
57 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
58 /** |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
59 * Gets called from factory, to set things up. |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
60 */ |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
61 @Override |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
62 public void setup( |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
63 String identifier, |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
64 ArtifactFactory factory, |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
65 Object context, |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
66 CallMeta callMeta, |
7842
8d5ca5175038
Updated signature of artifacts setup method; Removed unnecessary setup overrides.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
67 Document data, |
8d5ca5175038
Updated signature of artifacts setup method; Removed unnecessary setup overrides.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
68 List<Class> loadFacets) |
5764
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
69 { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7842
diff
changeset
|
70 log.debug("setup"); |
5764
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
71 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7842
diff
changeset
|
72 if (log.isDebugEnabled()) { |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7842
diff
changeset
|
73 log.debug(XMLUtils.toString(data)); |
5764
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
74 } |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
75 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
76 String code = getDatacageIDValue(data); |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
77 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
78 if (code != null) { |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
79 Facet facet = new MorphologicWidthFacet( |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
80 STATIC_FACET_NAME, |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
81 Resources.getMsg( |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
82 callMeta, |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
83 "facet.morphologic.width", |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
84 "morphologische Breite")); |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
85 addStringData("width_id", code); |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
86 ArrayList<Facet> facets = new ArrayList<Facet>(1); |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
87 facets.add(facet); |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
88 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
89 addFacets(STATIC_STATE_NAME, facets); |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
90 } |
7842
8d5ca5175038
Updated signature of artifacts setup method; Removed unnecessary setup overrides.
Raimund Renkert <rrenkert@intevation.de>
parents:
5994
diff
changeset
|
91 super.setup(identifier, factory, context, callMeta, data, loadFacets); |
5764
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
92 } |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
93 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
94 @Override |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
95 protected void initStaticState() { |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
96 |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7842
diff
changeset
|
97 log.debug("initStaticState " + getName() + " " + identifier()); |
5764
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
98 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
99 StaticState state = new StaticState(STATIC_STATE_NAME); |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
100 DefaultOutput output = new DefaultOutput( |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
101 "general", |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
102 "general", |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
103 "image/png", |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
104 "chart"); |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
105 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
106 List<Facet> facets = getFacets(STATIC_STATE_NAME); |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
107 output.addFacets(facets); |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
108 state.addOutput(output); |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
109 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
110 setStaticState(state); |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
111 } |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
112 |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
113 @Override |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
114 protected void initialize(Artifact artifact, Object context, CallMeta meta) { |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
115 } |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
116 } |
7ac111db8a07
Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
117 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |