annotate artifacts/src/main/java/org/dive4elements/river/artifacts/SQRelationArtifact.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 1e4e5ff44aa9
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: 5501
diff changeset
9 package org.dive4elements.river.artifacts;
5501
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
10
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
11 import java.util.ArrayList;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
12 import java.util.List;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
13
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
14 import org.apache.log4j.Logger;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
15 import org.w3c.dom.Document;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
16
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5501
diff changeset
17 import org.dive4elements.artifactdatabase.data.DefaultStateData;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5501
diff changeset
18 import org.dive4elements.artifactdatabase.state.DefaultOutput;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5501
diff changeset
19 import org.dive4elements.artifactdatabase.state.Facet;
7236
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
20 import org.dive4elements.artifacts.Artifact;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5501
diff changeset
21 import org.dive4elements.artifacts.ArtifactFactory;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5501
diff changeset
22 import org.dive4elements.artifacts.ArtifactNamespaceContext;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5501
diff changeset
23 import org.dive4elements.artifacts.CallMeta;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5501
diff changeset
24 import org.dive4elements.artifacts.common.utils.XMLUtils;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5501
diff changeset
25 import org.dive4elements.river.artifacts.model.sq.StaticSQRelation;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5501
diff changeset
26 import org.dive4elements.river.artifacts.resources.Resources;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5501
diff changeset
27 import org.dive4elements.river.artifacts.states.StaticState;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5501
diff changeset
28 import org.dive4elements.river.artifacts.states.sq.SQStaticState;
5501
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
29
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
30
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
31 public class SQRelationArtifact
7236
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
32 extends StaticD4EArtifact
5501
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
33 {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7842
diff changeset
34 private static final Logger log =
5501
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
35 Logger.getLogger(SQRelationArtifact.class);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
36
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
37 public static final String XPATH_RIVER = "/art:action/art:river/@art:name";
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
38 public static final String XPATH_STATION =
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
39 "/art:action/art:measurement_station/@art:number";
8327
1e4e5ff44aa9 Use the sq relation artifact to load data from datacage.
Raimund Renkert <rrenkert@intevation.de>
parents: 8202
diff changeset
40 public static final String NAME = "sqrelationdatacage";
5501
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
41 public static final String STATIC_STATE_NAME = "state.sqrelation.static";
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
42 public static final String UIPROVIDER = "static_sqrelation";
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
43 public static final String SQ_RELATION_OUT_A = "sq_relation_a";
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
44 public static final String SQ_RELATION_OUT_B = "sq_relation_b";
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
45 public static final String SQ_RELATION_OUT_C = "sq_relation_c";
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
46 public static final String SQ_RELATION_OUT_D = "sq_relation_d";
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
47 public static final String SQ_RELATION_OUT_E = "sq_relation_e";
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
48 public static final String SQ_RELATION_OUT_F = "sq_relation_f";
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
49
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
50
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
51 @Override
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
52 public void setup(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
53 String identifier,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
54 ArtifactFactory factory,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
55 Object context,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
56 CallMeta callmeta,
7842
8d5ca5175038 Updated signature of artifacts setup method; Removed unnecessary setup overrides.
Raimund Renkert <rrenkert@intevation.de>
parents: 7236
diff changeset
57 Document data,
8d5ca5175038 Updated signature of artifacts setup method; Removed unnecessary setup overrides.
Raimund Renkert <rrenkert@intevation.de>
parents: 7236
diff changeset
58 List<Class> loadFacets)
8d5ca5175038 Updated signature of artifacts setup method; Removed unnecessary setup overrides.
Raimund Renkert <rrenkert@intevation.de>
parents: 7236
diff changeset
59 {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7842
diff changeset
60 log.debug("SQRelationArtifact.setup()");
5501
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
61
7236
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
62 String code = getDatacageIDValue(data);
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
63
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7842
diff changeset
64 log.debug("SQRelationDCArtifact.setup Id: " + code);
7236
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
65
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
66 if (code != null && !code.isEmpty()) {
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
67 /* Case that we were instantiated from the datacage */
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
68 addStringData("ids", code);
7842
8d5ca5175038 Updated signature of artifacts setup method; Removed unnecessary setup overrides.
Raimund Renkert <rrenkert@intevation.de>
parents: 7236
diff changeset
69 super.setup(identifier, factory, context, callmeta, data, loadFacets);
7236
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
70 return;
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
71 }
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
72
5501
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
73 String river = XMLUtils.xpathString(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
74 data,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
75 XPATH_RIVER,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
76 ArtifactNamespaceContext.INSTANCE);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
77 String station = XMLUtils.xpathString(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
78 data,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
79 XPATH_STATION,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
80 ArtifactNamespaceContext.INSTANCE);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
81
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
82 addData(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
83 "river",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
84 new DefaultStateData(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
85 "river",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
86 Resources.getMsg(callmeta, "static.sq.river", "Rivername"),
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
87 "String",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
88 river));
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
89 addData(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
90 "station",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
91 new DefaultStateData(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
92 "station",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
93 Resources.getMsg(callmeta, "static.sq.station", "Station"),
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
94 "String",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
95 station));
7842
8d5ca5175038 Updated signature of artifacts setup method; Removed unnecessary setup overrides.
Raimund Renkert <rrenkert@intevation.de>
parents: 7236
diff changeset
96 super.setup(identifier, factory, context, callmeta, data, loadFacets);
7236
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
97 // When we are in this case we did not come from the datacage
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
98 // e.g. had an ID string set. So we also did not have a template
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
99 // set and initialize is not called. So we have to do this ourself.
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
100 initialize(this, context, callmeta);
5501
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
101 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
102
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
103 @Override
7236
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
104 protected void initialize(
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
105 Artifact artifact,
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
106 Object context,
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
107 CallMeta callMeta
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
108 ) {
5501
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
109 StaticState state = new SQStaticState(STATIC_STATE_NAME);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
110
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
111 List<Facet> fs = new ArrayList<Facet>();
7236
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
112 state.computeInit(this, hash(), context, callMeta, fs);
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7842
diff changeset
113 log.debug("Init static state computed facets");
7236
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
114 for (Facet face: fs) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7842
diff changeset
115 log.debug("Got a facet with name: " + face.getName());
7236
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
116 }
5501
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
117
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
118 if (hasParameter(StaticSQRelation.Parameter.A, fs)) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
119 DefaultOutput outputA = new DefaultOutput(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
120 SQ_RELATION_OUT_A,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
121 "output.static.sqrelation.a",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
122 "image/png",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
123 fs,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
124 "chart");
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
125 state.addOutput(outputA);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
126 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
127 if (hasParameter(StaticSQRelation.Parameter.B, fs)) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
128 DefaultOutput outputB = new DefaultOutput(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
129 SQ_RELATION_OUT_B,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
130 "output.static.sqrelation.b",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
131 "image/png",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
132 fs,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
133 "chart");
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
134 state.addOutput(outputB);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
135 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
136 if (hasParameter(StaticSQRelation.Parameter.C, fs)) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
137 DefaultOutput outputC = new DefaultOutput(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
138 SQ_RELATION_OUT_C,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
139 "output.static.sqrelation.c",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
140 "image/png",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
141 fs,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
142 "chart");
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
143 state.addOutput(outputC);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
144 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
145 if (hasParameter(StaticSQRelation.Parameter.D, fs)) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
146 DefaultOutput outputD = new DefaultOutput(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
147 SQ_RELATION_OUT_D,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
148 "output.static.sqrelation.d",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
149 "image/png",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
150 fs,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
151 "chart");
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
152 state.addOutput(outputD);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
153 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
154 if (hasParameter(StaticSQRelation.Parameter.E, fs)) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
155 DefaultOutput outputE = new DefaultOutput(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
156 SQ_RELATION_OUT_E,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
157 "output.static.sqrelation.e",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
158 "image/png",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
159 fs,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
160 "chart");
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
161 state.addOutput(outputE);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
162 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
163 if (hasParameter(StaticSQRelation.Parameter.F, fs)) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
164 DefaultOutput outputF = new DefaultOutput(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
165 SQ_RELATION_OUT_F,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
166 "output.static.sqrelation.f",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
167 "image/png",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
168 fs,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
169 "chart");
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
170 state.addOutput(outputF);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
171 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
172 addFacets(STATIC_STATE_NAME, fs);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
173 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
174
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
175 @Override
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
176 public String getName() {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
177 return NAME;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
178 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
179
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
180 private boolean hasParameter(StaticSQRelation.Parameter p, List<Facet> fs) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
181 for (Facet f : fs) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
182 if (f.getName().equals("sq_" +
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
183 p.toString().toLowerCase() + "_curve")) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
184 return true;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
185 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
186 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
187 return false;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
188 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
189 }

http://dive4elements.wald.intevation.org