gernotbelger@9072: /* Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@9072: * Software engineering by gernotbelger@9072: * Björnsen Beratende Ingenieure GmbH gernotbelger@9072: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@9072: * gernotbelger@9072: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@9072: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@9072: * documentation coming with Dive4Elements River for details. gernotbelger@9072: */ gernotbelger@9072: package org.dive4elements.river.artifacts.bundu; gernotbelger@9072: gernotbelger@9072: import java.util.ArrayList; gernotbelger@9072: import java.util.Collection; gernotbelger@9072: gernotbelger@9072: import org.apache.log4j.Logger; gernotbelger@9072: import org.dive4elements.artifacts.Artifact; gernotbelger@9072: import org.dive4elements.artifacts.CallContext; gernotbelger@9072: import org.dive4elements.artifacts.CallMeta; gernotbelger@9072: import org.dive4elements.artifacts.common.utils.XMLUtils; gernotbelger@9072: import org.dive4elements.river.artifacts.resources.Resources; gernotbelger@9072: import org.dive4elements.river.artifacts.states.DefaultState; gernotbelger@9072: import org.w3c.dom.Element; gernotbelger@9072: gernotbelger@9072: /** gernotbelger@9072: * @author Gernot Belger gernotbelger@9072: */ gernotbelger@9072: public class CalculationSelectBundu extends DefaultState { gernotbelger@9072: gernotbelger@9072: private static final long serialVersionUID = 1L; gernotbelger@9072: gernotbelger@9072: /** The log that is used in this class. */ gernotbelger@9072: private static Logger log = Logger.getLogger(CalculationSelectBundu.class); gernotbelger@9072: gernotbelger@9072: @Override gernotbelger@9072: protected Element[] createItems(final XMLUtils.ElementCreator cr, final Artifact artifact, final String name, final CallContext context) { gernotbelger@9072: final CallMeta meta = context.getMeta(); gernotbelger@9072: gernotbelger@9072: final Collection calcs = new ArrayList<>(BunduCalcMode.values().length); gernotbelger@9072: gernotbelger@9072: for (final BunduCalcMode calcMode : BunduCalcMode.values()) { gernotbelger@9072: final String calc = calcMode.name(); gernotbelger@9072: gernotbelger@9072: final String label = Resources.getMsg(meta, calc, calc); gernotbelger@9072: gernotbelger@9072: final Element element = createItem(cr, new String[] { label, calc }); gernotbelger@9072: calcs.add(element); gernotbelger@9072: } gernotbelger@9072: gernotbelger@9072: return calcs.toArray(new Element[calcs.size()]); gernotbelger@9072: } gernotbelger@9072: gernotbelger@9072: @Override gernotbelger@9072: public boolean validate(final Artifact artifact) throws IllegalArgumentException { gernotbelger@9072: log.debug("CalculationSelect.validate"); gernotbelger@9072: gernotbelger@9072: final BUNDUArtifact m_artifact = (BUNDUArtifact) artifact; gernotbelger@9072: /* throws an exception if calculation mode is invalid */ gernotbelger@9072: m_artifact.getCalculationMode(); gernotbelger@9072: return true; gernotbelger@9072: } gernotbelger@9072: }