annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/sq/SQStaticState.java @ 5863:4897a58c8746

River artifacts: Added new copyright headers.
author Sascha L. Teichmann <teichmann@intevation.de>
date Sun, 28 Apr 2013 14:40:59 +0200
parents 5aa05a7a34b7
children 59ff03ff48f1
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 *
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
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
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
6 * documentation coming with Dive4Elements River for details.
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;
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
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
15 import org.apache.log4j.Logger;
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: 5506
diff changeset
17 import org.dive4elements.artifactdatabase.state.Facet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5506
diff changeset
18 import org.dive4elements.river.artifacts.FLYSArtifact;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5506
diff changeset
19 import org.dive4elements.river.artifacts.access.StaticSQRelationAccess;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5506
diff changeset
20 import org.dive4elements.river.artifacts.model.sq.StaticSQContainer;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5506
diff changeset
21 import org.dive4elements.river.artifacts.model.sq.StaticSQFactory;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5506
diff changeset
22 import org.dive4elements.river.artifacts.model.sq.StaticSQRelation;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5506
diff changeset
23 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
24
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
25
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
26 public class SQStaticState
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
27 extends StaticState
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
28 {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
29 private static final Logger log =
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
30 Logger.getLogger(SQStaticState.class);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
31
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
32 public SQStaticState() {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
33 super();
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
34 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
35
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
36 public SQStaticState(String name) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
37 super(name);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
38 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
39
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
40 @Override
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
41 public Object staticCompute(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
42 List<Facet> facets,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
43 FLYSArtifact artifact
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 StaticSQRelationAccess access = new StaticSQRelationAccess(artifact);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
46
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
47 String river = access.getRiver();
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
48 String measurementStation = access.getMeasurementStation();
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 int ms = -1;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
51 try {
5506
57f802db5c5a Removed obsolete imports. Minor code simplifications.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5501
diff changeset
52 ms = Integer.parseInt(measurementStation);
5501
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
53 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
54 catch (NumberFormatException nfe) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
55 log.error("Unparseable measurement station: " + measurementStation);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
56 return null;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
57 }
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 StaticSQContainer sqRelations =
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
60 StaticSQFactory.getSQRelations(river, ms);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
61
5506
57f802db5c5a Removed obsolete imports. Minor code simplifications.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5501
diff changeset
62 for (StaticSQRelation.Parameter p: StaticSQRelation.Parameter.values()) {
5501
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
63
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
64 List<StaticSQRelation> relations =
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
65 sqRelations.getRelationsByParameter(p);
5506
57f802db5c5a Removed obsolete imports. Minor code simplifications.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5501
diff changeset
66
57f802db5c5a Removed obsolete imports. Minor code simplifications.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5501
diff changeset
67 if (!relations.isEmpty()) {
5501
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
68 int count = 0;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
69
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
70 for (StaticSQRelation relation : relations) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
71 String name = "sq_" + p.toString().toLowerCase() + "_curve";
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
72 DateFormat df =
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
73 DateFormat.getDateInstance(DateFormat.SHORT);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
74 String desc = p.toString() + ": " +
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
75 df.format(relation.getStartTime()) + " - " +
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
76 df.format(relation.getStopTime());
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
77 facets.add(new StaticSQRelationFacet(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
78 count,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
79 name,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
80 desc,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
81 relation));
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
82 count++;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
83 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
84 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
85 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
86 return null;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
87 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
88 }

http://dive4elements.wald.intevation.org