annotate artifacts/src/main/java/org/dive4elements/river/artifacts/SQRelationArtifact.java @ 7471:fff862f4ef76

Experimental caching of datacage recommendations. The respective hook is called a lot and running the datacage over and over again when loading data can be expensive. So the generated recommendations are cached for some time. Hopefully this improves the overall speed of loading data from the datacage.
author Sascha L. Teichmann <teichmann@intevation.de>
date Wed, 30 Oct 2013 15:26:21 +0100
parents a9bd4a23a852
children 8d5ca5175038
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 {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
34 private static final Logger logger =
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";
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
40 public static final String NAME = "staticsqrelation";
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,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
57 Document data
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
58 ) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
59 logger.debug("SQRelationArtifact.setup()");
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
60
7236
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
61 String code = getDatacageIDValue(data);
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
62
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
63 logger.debug("SQRelationDCArtifact.setup Id: " + code);
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
64
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
65 if (code != null && !code.isEmpty()) {
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
66 /* 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
67 addStringData("ids", code);
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
68 super.setup(identifier, factory, context, callmeta, data);
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
69 return;
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
70 }
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
71
5501
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
72 String river = XMLUtils.xpathString(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
73 data,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
74 XPATH_RIVER,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
75 ArtifactNamespaceContext.INSTANCE);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
76 String station = XMLUtils.xpathString(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
77 data,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
78 XPATH_STATION,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
79 ArtifactNamespaceContext.INSTANCE);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
80
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
81 addData(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
82 "river",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
83 new DefaultStateData(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
84 "river",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
85 Resources.getMsg(callmeta, "static.sq.river", "Rivername"),
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
86 "String",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
87 river));
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
88 addData(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
89 "station",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
90 new DefaultStateData(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
91 "station",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
92 Resources.getMsg(callmeta, "static.sq.station", "Station"),
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
93 "String",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
94 station));
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
95 super.setup(identifier, factory, context, callmeta, data);
7236
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
96 // 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
97 // 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
98 // 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
99 initialize(this, context, callmeta);
5501
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
100 }
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 @Override
7236
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
103 protected void initialize(
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
104 Artifact artifact,
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
105 Object context,
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
106 CallMeta callMeta
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
107 ) {
5501
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
108 StaticState state = new SQStaticState(STATIC_STATE_NAME);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
109
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
110 List<Facet> fs = new ArrayList<Facet>();
7236
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
111 state.computeInit(this, hash(), context, callMeta, fs);
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
112 logger.debug("Init static state computed facets");
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
113 for (Facet face: fs) {
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
114 logger.debug("Got a facet with name: " + face.getName());
a9bd4a23a852 (issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents: 5994
diff changeset
115 }
5501
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
116
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
117 if (hasParameter(StaticSQRelation.Parameter.A, fs)) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
118 DefaultOutput outputA = new DefaultOutput(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
119 SQ_RELATION_OUT_A,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
120 "output.static.sqrelation.a",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
121 "image/png",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
122 fs,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
123 "chart");
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
124 state.addOutput(outputA);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
125 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
126 if (hasParameter(StaticSQRelation.Parameter.B, fs)) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
127 DefaultOutput outputB = new DefaultOutput(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
128 SQ_RELATION_OUT_B,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
129 "output.static.sqrelation.b",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
130 "image/png",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
131 fs,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
132 "chart");
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
133 state.addOutput(outputB);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
134 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
135 if (hasParameter(StaticSQRelation.Parameter.C, fs)) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
136 DefaultOutput outputC = new DefaultOutput(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
137 SQ_RELATION_OUT_C,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
138 "output.static.sqrelation.c",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
139 "image/png",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
140 fs,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
141 "chart");
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
142 state.addOutput(outputC);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
143 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
144 if (hasParameter(StaticSQRelation.Parameter.D, fs)) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
145 DefaultOutput outputD = new DefaultOutput(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
146 SQ_RELATION_OUT_D,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
147 "output.static.sqrelation.d",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
148 "image/png",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
149 fs,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
150 "chart");
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
151 state.addOutput(outputD);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
152 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
153 if (hasParameter(StaticSQRelation.Parameter.E, fs)) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
154 DefaultOutput outputE = new DefaultOutput(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
155 SQ_RELATION_OUT_E,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
156 "output.static.sqrelation.e",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
157 "image/png",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
158 fs,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
159 "chart");
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
160 state.addOutput(outputE);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
161 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
162 if (hasParameter(StaticSQRelation.Parameter.F, fs)) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
163 DefaultOutput outputF = new DefaultOutput(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
164 SQ_RELATION_OUT_F,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
165 "output.static.sqrelation.f",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
166 "image/png",
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
167 fs,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
168 "chart");
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
169 state.addOutput(outputF);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
170 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
171 addFacets(STATIC_STATE_NAME, fs);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
172 }
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 @Override
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
175 public String getName() {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
176 return NAME;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
177 }
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 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
180 for (Facet f : fs) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
181 if (f.getName().equals("sq_" +
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
182 p.toString().toLowerCase() + "_curve")) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
183 return true;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
184 }
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 return false;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
187 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
188 }

http://dive4elements.wald.intevation.org