Mercurial > dive4elements > river
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 } |