view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/StaticHYKState.java @ 4187:21f4e4b79121

Refactor GaugeDischargeCurveFacet to be able to set a facet name For adding another output of the GaugeDischargeCurveArtifact it is necessary to provide to facet instances with different names. Therefore the GaugeDischargeCurveFacet is extended to set the facet name in the constructor.
author Björn Ricks <bjoern.ricks@intevation.de>
date Fri, 19 Oct 2012 13:25:49 +0200
parents eb1a676c0d6e
children
line wrap: on
line source
package de.intevation.flys.artifacts.states;

import java.util.List;

import org.apache.log4j.Logger;

import de.intevation.artifacts.CallContext;
import de.intevation.artifacts.CallMeta;

import de.intevation.artifactdatabase.state.Facet;

import de.intevation.flys.artifacts.FLYSArtifact;
import de.intevation.flys.artifacts.HYKArtifact;

import de.intevation.flys.artifacts.model.FacetTypes;
import de.intevation.flys.artifacts.model.HYKFacet;
import de.intevation.flys.artifacts.model.HYKFactory;

/**
 * Only state of a HYKArtifact.
 */
public class StaticHYKState
extends      DefaultState
implements   FacetTypes
{
    /** The logger that is used in this state. */
    transient private static final Logger logger = Logger.getLogger(StaticHYKState.class);


    /**
     * From this state can not be continued.
     */
    @Override
    protected String getUIProvider() {
        return "noinput";
    }


    /**
     * Compute, create Facets, do the same stuff as all the other states do.
     */
    protected Object compute(
        HYKArtifact   hyk,
        CallMeta      metaLocale,
        String        hash,
        List<Facet>   facets,
        Object        old
    ) {
        logger.debug("StaticHYKState.compute");
        String id = getID();

        // Prepare comparison against cached result.
        List<HYKFactory.Zone> resZones = old instanceof List
            ? (List<HYKFactory.Zone>)old
            : null;

        // TODO Compare against cached object.

        // Get Zones from HYKFactory
        List<HYKFactory.Zone> zones = (List<HYKFactory.Zone>)
            HYKFactory.getHYKs(hyk.getHykId(), hyk.getKm());

        if (facets == null) {
            logger.debug("StaticHYKState.compute no facets");
            return zones;
        }

        // Spawn Facets.
        Facet facet = new HYKFacet(0, HYKFactory.getHykName(hyk.getHykId()));
        facets.add(facet);

        return zones;
    }


    /**
     * Get data, create the facets.
     *
     * @param context Ignored.
     */
    @Override
    public Object computeFeed(
        FLYSArtifact artifact,
        String       hash,
        CallContext  context,
        List<Facet>  facets,
        Object       old
    ) {
        return compute((HYKArtifact) artifact, context.getMeta(),
            hash, facets, old);
    }


    /**
     * Create the facets.
     * @param context Ignored.
     */
    @Override
    public Object computeInit(
        FLYSArtifact artifact,
        String       hash,
        Object       context,
        CallMeta     meta,
        List<Facet>  facets
    ) {
        return compute((HYKArtifact) artifact, meta, hash, facets,
            null);
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org