view artifacts/src/main/java/org/dive4elements/river/artifacts/states/GaugeDischargeCurveState.java @ 8659:af415396d9ca

(issue1803) Use MD5 instead of a homegrown hashing algorithm For creating a digest of the parametrization we should use an algorithm that does not create collisions if there are small changes in the parametrization so that wrong results are returned.
author Andre Heinecke <andre.heinecke@intevation.de>
date Thu, 02 Apr 2015 17:40:18 +0200
parents 6ebad936d82b
children 5e38e2924c07
line wrap: on
line source
package org.dive4elements.river.artifacts.states;

import java.util.List;
import java.util.Date;

import org.dive4elements.artifactdatabase.state.Facet;
import org.dive4elements.artifacts.CallContext;
import org.dive4elements.river.artifacts.D4EArtifact;
import org.dive4elements.river.artifacts.access.RiverAccess;
import org.dive4elements.river.artifacts.model.GaugeDischargeCurveFacet;
import org.dive4elements.river.artifacts.resources.Resources;

import org.dive4elements.river.model.TimeInterval;

public class GaugeDischargeCurveState
extends DefaultState
{

    @Override
    public Object computeAdvance(
        D4EArtifact artifact,
        String hash,
        CallContext context,
        List<Facet> facets,
        Object old
    ) {
        String gaugeName = artifact.getDataAsString("gauge_name");
        TimeInterval validity = new RiverAccess(artifact).getRiver()
            .determineGaugeByName(gaugeName).fetchMasterDischargeTable()
            .getTimeInterval();
        Date stopTime = validity.getStopTime();
        String description = Resources.getMsg(
            context.getMeta(),
            "chart.discharge.curve.model" + (stopTime != null ? "" : ".nostop"),
            new Object[] {gaugeName,
                          validity.getStartTime(),
                          stopTime
                }
        );

        facets.add(new GaugeDischargeCurveFacet("gauge_discharge_curve", description));
        facets.add(new GaugeDischargeCurveFacet("at", "gauge_discharge_curve"));
        facets.add(new GaugeDischargeCurveFacet("csv", "gauge_discharge_curve"));
        facets.add(new GaugeDischargeCurveFacet("pdf", "gauge_discharge_curve"));
        return null;
    }
}

http://dive4elements.wald.intevation.org