Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/CalculationSelectUinfo.java @ 9661:9b8ba3b83a15
Importer (s/u-info) vegetation zones: new database column in vegetation_type table for german type name,
localized vegetation type names by querying the database instead of translating by resource property,
detecting and cancelling the import of a second vegetation zone file for a river,
detecting, logging, cancelling in case of wrong column titles,
detecting, logging and ignoring lines with missing (color) values,
comparing vegetation zone name and class with the database and logging+ignoring in case of inconsistencies,
starting the most elevated zone with 0 instead of -1 overflow days
author | mschaefer |
---|---|
date | Mon, 23 Mar 2020 16:38:12 +0100 |
parents | 63bbd5e45839 |
children |
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.UedauernConfiguration; 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 (!UedauernConfiguration.filesExistsForRiver(river)) throw new IllegalArgumentException("error_no_data_for_river"); // wrong config could be thrown here as well... } return true; } }