view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/extreme/ExtremeCompute.java @ 4174:eaf83d4ae6b1

Sorted gauges for reference gauge selection in historical discharge calculation based on their name. Now, Gauge implements the Java Comparable interface and takes its name into account.
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 18 Oct 2012 13:12:24 +0200
parents eb5564662e19
children 1f304cb5729b
line wrap: on
line source
package de.intevation.flys.artifacts.states.extreme;

import de.intevation.artifactdatabase.state.Facet;

import de.intevation.artifacts.CallContext;

import de.intevation.flys.artifacts.FLYSArtifact;

import de.intevation.flys.artifacts.access.ExtremeAccess;

import de.intevation.flys.artifacts.model.CalculationResult;
import de.intevation.flys.artifacts.model.ReportFacet;

import de.intevation.flys.artifacts.model.extreme.ExtremeCalculation;

import de.intevation.flys.artifacts.states.DefaultState;

import java.util.List;

import org.apache.log4j.Logger;

/** State in which to deliver extreme value analysis result. */
public class ExtremeCompute
extends      DefaultState
{
    /** Private logger. */
    private static Logger log = Logger.getLogger(ExtremeCompute.class);

    public ExtremeCompute() {
    }

    @Override
    public Object computeAdvance(
        FLYSArtifact artifact,
        String       hash,
        CallContext  context,
        List<Facet>  facets,
        Object       old
    ) {
        log.debug("ExtremeCompute.computeAdvance");

        CalculationResult res;

        ExtremeAccess access = new ExtremeAccess(artifact);

        if (old instanceof CalculationResult) {
            res = (CalculationResult)old;
        }
        else {
            ExtremeCalculation calc = new ExtremeCalculation(access);
            res = calc.calculate();
        }

        if (facets == null) {
            return res;
        }

        if (res.getReport().hasProblems()) {
            facets.add(new ReportFacet());
        }

        // TODO: Add more facets.

        return res;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org