view artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadUnknownFacet.java @ 7300:83bb52fa0c32

(issue1529) Be more tolerant in the fitting. The invalid value warning is removed because invalid data is expected there when datapoints are not valid for this KM
author Andre Heinecke <aheinecke@intevation.de>
date Fri, 11 Oct 2013 18:40:33 +0200
parents a56fe3bc6700
children b468dc65154a
line wrap: on
line source
package org.dive4elements.river.artifacts.model.minfo;

import org.apache.log4j.Logger;
import org.dive4elements.artifactdatabase.state.Facet;
import org.dive4elements.artifacts.Artifact;
import org.dive4elements.artifacts.CallContext;
import org.dive4elements.river.artifacts.D4EArtifact;
import org.dive4elements.river.artifacts.access.SedimentLoadAccess;
import org.dive4elements.river.artifacts.model.DataFacet;
import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;


public class SedimentLoadUnknownFacet
extends DataFacet
{
    /** Very own logger. */
    private static Logger logger = Logger.getLogger(SedimentLoadUnknownFacet.class);

    public SedimentLoadUnknownFacet() {
    }

    public SedimentLoadUnknownFacet(int idx, String name, String description,
        ComputeType type, String stateId, String hash) {
        super(idx, name, description, type, hash, stateId);
    }

    /** Get data from SedimentLoad with unknown type, from factory. */
    @Override
    public Object getData(Artifact artifact, CallContext context) {
        logger.debug("Get data for sediment load at index: " + index);

        D4EArtifact flys = (D4EArtifact) artifact;

        SedimentLoadAccess access = new SedimentLoadAccess(flys);
        String river = access.getRiverName();
        String unit  = access.getUnit();
        SedimentLoad[] unknown =
            SedimentLoadFactory.getSedimentLoadUnknown(
                river,
                unit.replace("_per_","/"),
                access.getYearEpoch());

        SedimentLoad load = SedimentLoadFactory.getLoadUnknown(
            river, unknown[index].getDescription());
        return load;
    }

    /** Copy deeply. */
    @Override
    public Facet deepCopy() {
        SedimentLoadUnknownFacet copy = new SedimentLoadUnknownFacet();
        copy.set(this);
        copy.hash = hash;
        copy.stateId = stateId;
        return copy;
    }
}

http://dive4elements.wald.intevation.org