annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/sq/SQStaticState.java @ 5501:9a14eac637ec

New Artifact and static state for sq relation.
author Raimund Renkert <rrenkert@intevation.de>
date Thu, 28 Mar 2013 15:17:02 +0100
parents
children 57f802db5c5a
rev   line source
5501
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.artifacts.states.sq;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
2
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
3 import java.text.DateFormat;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
4 import java.text.SimpleDateFormat;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
5 import java.util.Calendar;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
6 import java.util.List;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
7
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
8 import javax.swing.text.DateFormatter;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
9
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
10 import org.apache.log4j.Logger;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
11
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
12 import de.intevation.artifactdatabase.state.Facet;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
13 import de.intevation.flys.artifacts.FLYSArtifact;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
14 import de.intevation.flys.artifacts.access.StaticSQRelationAccess;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
15 import de.intevation.flys.artifacts.model.sq.StaticSQContainer;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
16 import de.intevation.flys.artifacts.model.sq.StaticSQFactory;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
17 import de.intevation.flys.artifacts.model.sq.StaticSQRelation;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
18 import de.intevation.flys.artifacts.states.StaticState;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
19
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
20
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
21 public class SQStaticState
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
22 extends StaticState
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
23 {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
24 private static final Logger log =
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
25 Logger.getLogger(SQStaticState.class);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
26
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
27 public SQStaticState() {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
28 super();
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 SQStaticState(String name) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
32 super(name);
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
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
35 @Override
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
36 public Object staticCompute(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
37 List<Facet> facets,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
38 FLYSArtifact artifact
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 StaticSQRelationAccess access = new StaticSQRelationAccess(artifact);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
41
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
42 String river = access.getRiver();
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
43 String measurementStation = access.getMeasurementStation();
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 int ms = -1;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
46 try {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
47 ms = Integer.valueOf(measurementStation);
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 catch (NumberFormatException nfe) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
50 log.error("Unparseable measurement station: " + measurementStation);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
51 return null;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
52 }
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 StaticSQContainer sqRelations =
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
55 StaticSQFactory.getSQRelations(river, ms);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
56
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
57 for (int i = 0; i < StaticSQRelation.Parameter.values().length; i++) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
58 StaticSQRelation.Parameter p =
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
59 StaticSQRelation.Parameter.values()[i];
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
60
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
61 List<StaticSQRelation> relations =
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
62 sqRelations.getRelationsByParameter(p);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
63 if (relations.size() > 0) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
64 int count = 0;
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
65
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
66 for (StaticSQRelation relation : relations) {
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
67 String name = "sq_" + p.toString().toLowerCase() + "_curve";
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
68 DateFormat df =
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
69 DateFormat.getDateInstance(DateFormat.SHORT);
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
70 String desc = p.toString() + ": " +
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
71 df.format(relation.getStartTime()) + " - " +
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
72 df.format(relation.getStopTime());
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
73 facets.add(new StaticSQRelationFacet(
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
74 count,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
75 name,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
76 desc,
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
77 relation));
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 }
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 }
9a14eac637ec New Artifact and static state for sq relation.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
82 return null;
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 }

http://dive4elements.wald.intevation.org