view 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 source
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