Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/sq/SQStaticState.java @ 9802:a9641367812c 3.2.x tip
Improve locale support in artifacts container
Makes it easier to run scripts e.g. for importing data.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Wed, 29 May 2024 10:51:00 +0200 |
parents | 0a5239a1e46e |
children |
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:
5867
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:
5867
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:
5506
diff
changeset
|
9 package org.dive4elements.river.artifacts.states.sq; |
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.text.DateFormat; |
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 import java.util.List; |
7236
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
13 import java.text.SimpleDateFormat; |
5501
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 |
9726 | 15 import org.apache.logging.log4j.Logger; |
16 import org.apache.logging.log4j.LogManager; | |
5501
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5506
diff
changeset
|
18 import org.dive4elements.artifactdatabase.state.Facet; |
8312
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
19 import org.dive4elements.artifacts.CallContext; |
7236
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
20 import org.dive4elements.artifacts.CallMeta; |
5867
59ff03ff48f1
River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
21 import org.dive4elements.river.artifacts.D4EArtifact; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5506
diff
changeset
|
22 import org.dive4elements.river.artifacts.access.StaticSQRelationAccess; |
8312
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
23 import org.dive4elements.river.artifacts.model.FacetTypes; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5506
diff
changeset
|
24 import org.dive4elements.river.artifacts.model.sq.StaticSQContainer; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5506
diff
changeset
|
25 import org.dive4elements.river.artifacts.model.sq.StaticSQFactory; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5506
diff
changeset
|
26 import org.dive4elements.river.artifacts.model.sq.StaticSQRelation; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5506
diff
changeset
|
27 import org.dive4elements.river.artifacts.states.StaticState; |
5501
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 |
7236
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
29 import org.dive4elements.river.artifacts.resources.Resources; |
5501
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 SQStaticState |
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
32 extends StaticState |
8312
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
33 implements FacetTypes |
5501
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 { |
7236
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
35 |
5501
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 private static final Logger log = |
9726 | 37 LogManager.getLogger(SQStaticState.class); |
5501
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 |
7236
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
39 private static final String FACET_DESCRIPTION = |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
40 "facet.sq_relation.static_data"; |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
41 |
5501
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 public SQStaticState() { |
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 super(); |
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 } |
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 |
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 public SQStaticState(String name) { |
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 super(name); |
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 } |
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 @Override |
8312
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
51 public Object computeAdvance( |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
52 D4EArtifact artifact, |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
53 String hash, |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
54 CallContext context, |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
55 List<Facet> facets, |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
56 Object old) { |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
57 StaticSQContainer sqRelations; |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
58 StaticSQRelationAccess access = new StaticSQRelationAccess(artifact); |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
59 String river = access.getRiverName(); |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
60 String measurementStation = access.getMeasurementStation(); |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
61 |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
62 int ms = -1; |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
63 try { |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
64 ms = Integer.parseInt(measurementStation); |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
65 } |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
66 catch (NumberFormatException nfe) { |
8856 | 67 log.error("Unparseable measurement station: " |
68 + measurementStation); | |
8312
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
69 return null; |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
70 } |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
71 log.debug("Parsed measurement station: " + ms); |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
72 |
8543
9a5b3079aad4
(issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8315
diff
changeset
|
73 sqRelations = StaticSQFactory.getSQRelationsForLocation(river, ms); |
8312
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
74 DateFormat df = new SimpleDateFormat("yyyy"); |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
75 |
8856 | 76 for ( |
77 StaticSQRelation.Parameter p: StaticSQRelation.Parameter.values() | |
78 ) { | |
8312
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
79 log.debug("parameter: " + p.toString()); |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
80 List<StaticSQRelation> relations = |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
81 sqRelations.getRelationsByParameter(p); |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
82 |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
83 if (!relations.isEmpty()) { |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
84 int count = 0; |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
85 |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
86 for (StaticSQRelation relation : relations) { |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
87 log.debug("add facet for " + p.toString().toLowerCase()); |
8856 | 88 String name = "sq_" + p.toString().toLowerCase() |
89 + "_curve"; | |
8312
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
90 String desc = |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
91 Resources.getMsg(context.getMeta(), |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
92 FACET_DESCRIPTION, |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
93 FACET_DESCRIPTION, |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
94 new Object[] { |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
95 df.format(relation.getStartTime()), |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
96 df.format(relation.getStopTime())}); |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
97 facets.add(new StaticSQRelationFacet( |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
98 count, |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
99 name, |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
100 desc, |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
101 relation)); |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
102 count++; |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
103 } |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
104 } |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
105 } |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
106 return null; |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
107 } |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
108 |
9f5059f4f01a
Configured "static" sq relation to use a default D4EArtifact and two states to hold the parameters and outs.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
109 @Override |
7236
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
110 public Object computeInit( |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
111 D4EArtifact artifact, |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
112 String hash, |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
113 Object context, |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
114 CallMeta meta, |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
115 List<Facet> facets |
5501
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
116 ) { |
7236
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
117 StaticSQContainer sqRelations; |
5501
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
118 |
7236
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
119 String id_string = artifact.getDataAsString("ids"); |
5501
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
120 |
7236
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
121 int static_id = -1; |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
122 String static_desc = null; |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
123 |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
124 if (id_string != null && !id_string.isEmpty()) { |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
125 String[] id_parts = id_string.split(";"); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
126 static_id = Integer.parseInt(id_parts[0]); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
127 if (id_parts.length > 1) { |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
128 static_desc = id_parts[1]; |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
129 } |
5501
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
130 } |
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
131 |
7236
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
132 if (static_id != -1) { |
8856 | 133 // If next line fails a traceback is the best debug output anyhow |
7236
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
134 sqRelations = StaticSQFactory.getDistinctRelation(static_id); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
135 log.debug("Got a distinct relation" + sqRelations); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
136 } else { |
8856 | 137 StaticSQRelationAccess access = |
138 new StaticSQRelationAccess(artifact); | |
7261
a56fe3bc6700
Refactoring: Let RiverAccess.getRiver return an River.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
7236
diff
changeset
|
139 String river = access.getRiverName(); |
7236
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
140 String measurementStation = access.getMeasurementStation(); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
141 |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
142 int ms = -1; |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
143 try { |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
144 ms = Integer.parseInt(measurementStation); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
145 } |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
146 catch (NumberFormatException nfe) { |
8856 | 147 log.error("Unparseable measurement station: " |
148 + measurementStation); | |
7236
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
149 return null; |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
150 } |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
151 log.debug("Parsed measurement station: " + ms); |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
152 |
8543
9a5b3079aad4
(issue1750) Take Static SQ Relations based on a range and merge them together
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8315
diff
changeset
|
153 sqRelations = StaticSQFactory.getSQRelationsForLocation(river, ms); |
7236
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
154 } |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
155 |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
156 DateFormat df = new SimpleDateFormat("yyyy"); |
5501
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
157 |
8856 | 158 for ( |
159 StaticSQRelation.Parameter p: StaticSQRelation.Parameter.values() | |
160 ) { | |
5501
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 List<StaticSQRelation> relations = |
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
163 sqRelations.getRelationsByParameter(p); |
5506
57f802db5c5a
Removed obsolete imports. Minor code simplifications.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5501
diff
changeset
|
164 |
57f802db5c5a
Removed obsolete imports. Minor code simplifications.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5501
diff
changeset
|
165 if (!relations.isEmpty()) { |
5501
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
166 int count = 0; |
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
167 |
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
168 for (StaticSQRelation relation : relations) { |
8856 | 169 String name = "sq_" + p.toString().toLowerCase() |
170 + "_curve"; | |
7236
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
171 String desc = static_desc == null ? |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
172 Resources.getMsg(meta, |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
173 FACET_DESCRIPTION, |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
174 FACET_DESCRIPTION, |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
175 new Object[] { |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
176 df.format(relation.getStartTime()), |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
177 df.format(relation.getStopTime())}) : |
a9bd4a23a852
(issue1474) Add datacage loading for SQ Relations
Andre Heinecke <aheinecke@intevation.de>
parents:
5994
diff
changeset
|
178 static_desc; |
5501
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
179 facets.add(new StaticSQRelationFacet( |
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
180 count, |
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
181 name, |
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
182 desc, |
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
183 relation)); |
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
184 count++; |
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 } |
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
188 return null; |
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
189 } |
9a14eac637ec
New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
190 } |