comparison 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
comparison
equal deleted inserted replaced
5500:700ac898ab0b 5501:9a14eac637ec
1 package de.intevation.flys.artifacts.states.sq;
2
3 import java.text.DateFormat;
4 import java.text.SimpleDateFormat;
5 import java.util.Calendar;
6 import java.util.List;
7
8 import javax.swing.text.DateFormatter;
9
10 import org.apache.log4j.Logger;
11
12 import de.intevation.artifactdatabase.state.Facet;
13 import de.intevation.flys.artifacts.FLYSArtifact;
14 import de.intevation.flys.artifacts.access.StaticSQRelationAccess;
15 import de.intevation.flys.artifacts.model.sq.StaticSQContainer;
16 import de.intevation.flys.artifacts.model.sq.StaticSQFactory;
17 import de.intevation.flys.artifacts.model.sq.StaticSQRelation;
18 import de.intevation.flys.artifacts.states.StaticState;
19
20
21 public class SQStaticState
22 extends StaticState
23 {
24 private static final Logger log =
25 Logger.getLogger(SQStaticState.class);
26
27 public SQStaticState() {
28 super();
29 }
30
31 public SQStaticState(String name) {
32 super(name);
33 }
34
35 @Override
36 public Object staticCompute(
37 List<Facet> facets,
38 FLYSArtifact artifact
39 ) {
40 StaticSQRelationAccess access = new StaticSQRelationAccess(artifact);
41
42 String river = access.getRiver();
43 String measurementStation = access.getMeasurementStation();
44
45 int ms = -1;
46 try {
47 ms = Integer.valueOf(measurementStation);
48 }
49 catch (NumberFormatException nfe) {
50 log.error("Unparseable measurement station: " + measurementStation);
51 return null;
52 }
53
54 StaticSQContainer sqRelations =
55 StaticSQFactory.getSQRelations(river, ms);
56
57 for (int i = 0; i < StaticSQRelation.Parameter.values().length; i++) {
58 StaticSQRelation.Parameter p =
59 StaticSQRelation.Parameter.values()[i];
60
61 List<StaticSQRelation> relations =
62 sqRelations.getRelationsByParameter(p);
63 if (relations.size() > 0) {
64 int count = 0;
65
66 for (StaticSQRelation relation : relations) {
67 String name = "sq_" + p.toString().toLowerCase() + "_curve";
68 DateFormat df =
69 DateFormat.getDateInstance(DateFormat.SHORT);
70 String desc = p.toString() + ": " +
71 df.format(relation.getStartTime()) + " - " +
72 df.format(relation.getStopTime());
73 facets.add(new StaticSQRelationFacet(
74 count,
75 name,
76 desc,
77 relation));
78 count++;
79 }
80 }
81 }
82 return null;
83 }
84 }

http://dive4elements.wald.intevation.org