view artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/CalculationSelectSinfo.java @ 8914:e3519c3e7a0a

Workflow for SINFO-Transport bodies heights inclduing winfo calculation
author gernotbelger
date Tue, 27 Feb 2018 18:06:52 +0100
parents 28df64078f27
children f692f5a0536a
line wrap: on
line source
/* Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
 * Software engineering by
 *  Björnsen Beratende Ingenieure GmbH
 *  Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
 *
 * This file is Free Software under the GNU AGPL (>=v3)
 * and comes with ABSOLUTELY NO WARRANTY! Check out the
 * documentation coming with Dive4Elements River for details.
 */
package org.dive4elements.river.artifacts.sinfo;

import java.util.ArrayList;
import java.util.Collection;

import org.apache.log4j.Logger;
import org.dive4elements.artifacts.Artifact;
import org.dive4elements.artifacts.CallContext;
import org.dive4elements.artifacts.CallMeta;
import org.dive4elements.artifacts.common.utils.XMLUtils;
import org.dive4elements.river.artifacts.resources.Resources;
import org.dive4elements.river.artifacts.states.DefaultState;
import org.w3c.dom.Element;

/**
 * @author Gernot Belger
 */
public class CalculationSelectSinfo extends DefaultState {

    private static final long serialVersionUID = 1L;

    /** The log that is used in this class. */
    private static Logger log = Logger.getLogger(CalculationSelectSinfo.class);

    @Override
    protected Element[] createItems(final XMLUtils.ElementCreator cr, final Artifact artifact, final String name, final CallContext context) {
        final CallMeta meta = context.getMeta();

        final Collection<Element> calcs = new ArrayList<>(SinfoCalcMode.values().length);

        for (final SinfoCalcMode calcMode : SinfoCalcMode.values()) {
            final String calc = calcMode.name();

            final String label = Resources.getMsg(meta, calc, calc);

            final Element element = createItem(cr, new String[] { label, calc });
            calcs.add(element);
        }

        return calcs.toArray(new Element[calcs.size()]);
    }

    @Override
    public boolean validate(final Artifact artifact) throws IllegalArgumentException {
        log.debug("CalculationSelect.validate");

        final SINFOArtifact sinfo = (SINFOArtifact) artifact;
        /* throws an exception if calculation mode is invalid */
        sinfo.getCalculationMode();
        return true;
    }
}

http://dive4elements.wald.intevation.org