Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/CalculationSelectUinfo.java @ 9184:dace17e26d33
code review uinfo.inundationduration
author | gernotbelger |
---|---|
date | Wed, 27 Jun 2018 14:07:02 +0200 |
parents | 2f5052835b76 |
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.uinfo; 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.dive4elements.river.artifacts.uinfo.inundationduration.UedauernPropertiesHelper; import org.w3c.dom.Element; /** * @author Gernot Belger */ public class CalculationSelectUinfo extends DefaultState { private static final long serialVersionUID = 1L; /** The log that is used in this class. */ private static Logger log = Logger.getLogger(CalculationSelectUinfo.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<>(UinfoCalcMode.values().length); for (final UinfoCalcMode calcMode : UinfoCalcMode.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"); /* throws an exception if calculation mode is invalid */ final UINFOArtifact uinfo = (UINFOArtifact) artifact; final String calcmode = uinfo.getCalculationMode().toString(); // "toString()" is important if (calcmode.equals("uinfo_inundation_duration")) { final String river = uinfo.getRiver(); if (!UedauernPropertiesHelper.fileExistsForRiver(river)) { throw new IllegalArgumentException("error_river_inundationdur_file_not_found"); } } return true; } }