view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/minfo/BedQualityState.java @ 3761:066e2b4d69ca

Fix missing import flys-artifacts/trunk@5462 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Christian Lins <christian.lins@intevation.de>
date Thu, 13 Sep 2012 20:58:24 +0000
parents e8a90a5ce624
children 0c978a80726a
line wrap: on
line source
package de.intevation.flys.artifacts.states.minfo;

import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;

import de.intevation.artifactdatabase.state.Facet;
import de.intevation.artifacts.CallContext;
import de.intevation.flys.artifacts.FLYSArtifact;
import de.intevation.flys.artifacts.access.BedQualityAccess;
import de.intevation.flys.artifacts.model.CalculationResult;
import de.intevation.flys.artifacts.model.FacetTypes;
import de.intevation.flys.artifacts.model.minfo.BedDensityFacet;
import de.intevation.flys.artifacts.model.minfo.BedDiameterFacet;
import de.intevation.flys.artifacts.model.minfo.BedPorosityFacet;
import de.intevation.flys.artifacts.model.minfo.BedQualityCalculation;
import de.intevation.flys.artifacts.model.minfo.BedloadDiameterFacet;
import de.intevation.flys.artifacts.states.DefaultState;


public class BedQualityState extends DefaultState implements FacetTypes {

    private static final long serialVersionUID = 1L;

    private static final Logger logger = Logger
        .getLogger(BedQualityState.class);

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

        List<Facet> newFacets = new ArrayList<Facet>();

        BedQualityAccess access = new BedQualityAccess(artifact);

        CalculationResult res = old instanceof CalculationResult ? (CalculationResult) old
            : new BedQualityCalculation().calculate(access);

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

        String stateId = getID();

        // TODO CREATE FACETS DEPENDING ON THE CALCULATION RESULT
        newFacets.add(new BedDiameterFacet(0, BED_QUALITY_BED_DIAMETER,
            "bed diameter", ComputeType.ADVANCE, stateId, hash));

        newFacets.add(new BedloadDiameterFacet(0, BED_QUALITY_BEDLOAD_DIAMETER,
            "bedload diameter", ComputeType.ADVANCE, stateId, hash));

        newFacets.add(new BedPorosityFacet(0, BED_QUALITY_POROSITY, "porosity",
            ComputeType.ADVANCE, stateId, hash));

        newFacets.add(new BedDensityFacet(0, BED_QUALITY_SEDIMENT_DENSITY,
            "density", ComputeType.ADVANCE, stateId, hash));

        logger.debug("Created " + newFacets.size() + " new Facets.");
        facets.addAll(newFacets);

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

http://dive4elements.wald.intevation.org