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

More infrastructure stuff for the "Auslagerung extremer Wasserspiegellagen". flys-artifacts/trunk@5481 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Sun, 16 Sep 2012 11:40:38 +0000
parents
children eb5564662e19
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;

public class ExtremeCompute
extends      DefaultState
{
    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