diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/sq/SQStaticState.java	Thu Mar 28 15:17:02 2013 +0100
@@ -0,0 +1,84 @@
+package de.intevation.flys.artifacts.states.sq;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.List;
+
+import javax.swing.text.DateFormatter;
+
+import org.apache.log4j.Logger;
+
+import de.intevation.artifactdatabase.state.Facet;
+import de.intevation.flys.artifacts.FLYSArtifact;
+import de.intevation.flys.artifacts.access.StaticSQRelationAccess;
+import de.intevation.flys.artifacts.model.sq.StaticSQContainer;
+import de.intevation.flys.artifacts.model.sq.StaticSQFactory;
+import de.intevation.flys.artifacts.model.sq.StaticSQRelation;
+import de.intevation.flys.artifacts.states.StaticState;
+
+
+public class SQStaticState
+extends StaticState
+{
+    private static final Logger log =
+        Logger.getLogger(SQStaticState.class);
+
+    public SQStaticState() {
+        super();
+    }
+
+    public SQStaticState(String name) {
+        super(name);
+    }
+
+    @Override
+    public Object staticCompute(
+        List<Facet> facets,
+        FLYSArtifact artifact
+    ) {
+        StaticSQRelationAccess access = new StaticSQRelationAccess(artifact);
+
+        String river = access.getRiver();
+        String measurementStation = access.getMeasurementStation();
+
+        int ms = -1;
+        try {
+            ms = Integer.valueOf(measurementStation);
+        }
+        catch (NumberFormatException nfe) {
+            log.error("Unparseable measurement station: " + measurementStation);
+            return null;
+        }
+
+        StaticSQContainer sqRelations =
+            StaticSQFactory.getSQRelations(river, ms);
+
+        for (int i = 0; i < StaticSQRelation.Parameter.values().length; i++) {
+            StaticSQRelation.Parameter p =
+                StaticSQRelation.Parameter.values()[i];
+
+            List<StaticSQRelation> relations =
+                sqRelations.getRelationsByParameter(p);
+            if (relations.size() > 0) {
+                int count = 0;
+
+                for (StaticSQRelation relation : relations) {
+                    String name = "sq_" + p.toString().toLowerCase() + "_curve";
+                    DateFormat df =
+                        DateFormat.getDateInstance(DateFormat.SHORT);
+                    String desc = p.toString() + ": " +
+                        df.format(relation.getStartTime()) + " - " +
+                        df.format(relation.getStopTime());
+                    facets.add(new StaticSQRelationFacet(
+                        count,
+                        name,
+                        desc,
+                        relation));
+                    count++;
+                }
+            }
+        }
+        return null;
+    }
+}

http://dive4elements.wald.intevation.org