Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/UINFOArtifact.java @ 9107:41f4bc83aa7a
vegzones improved
author | gernotbelger |
---|---|
date | Tue, 29 May 2018 15:19:03 +0200 |
parents | 13b5b515c61f |
children | 72b3270e1568 |
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 org.apache.commons.lang.StringUtils; import org.dive4elements.artifactdatabase.state.Facet; import org.dive4elements.artifactdatabase.state.FacetActivity; import org.dive4elements.artifacts.Artifact; import org.dive4elements.river.artifacts.D4EArtifact; /** * The default UINFO artifact. * * @author Gernot Belger */ public class UINFOArtifact extends D4EArtifact { private static final long serialVersionUID = 1L; /** Error message that is thrown if no mode has been chosen. */ private static final String ERROR_NO_CALCULATION_MODE = "error_feed_no_calculation_mode"; /** * Error message that is thrown if an invalid calculation mode has been chosen. */ private static final String ERROR_INVALID_CALCULATION_MODE = "error_feed_invalid_calculation_mode"; /** The name of the artifact. */ private static final String ARTIFACT_NAME = "uinfo"; private static final String FIELD_RIVER = "river"; private static final String FIELD_MODE = "calculation_mode"; static { // Active/deactivate facets. // BEWARE: we can only define one activity for "sinfo", so we use the artifact // as place for this FacetActivity.Registry.getInstance().register(ARTIFACT_NAME, new FacetActivity() { @Override public Boolean isInitialActive(final Artifact artifact, final Facet facet, final String output) { return null; } }); } /** * Default constructor, because it's serializable. */ public UINFOArtifact() { } /** * Returns the name of the concrete artifact. * * @return the name of the concrete artifact. */ @Override public String getName() { return ARTIFACT_NAME; } public UinfoCalcMode getCalculationMode() { final String calc = getDataAsString(FIELD_MODE); if (calc == null) { throw new IllegalArgumentException(ERROR_NO_CALCULATION_MODE); } try { return UinfoCalcMode.valueOf(StringUtils.trimToEmpty(calc).toLowerCase()); } catch (final Exception e) { throw new IllegalArgumentException(ERROR_INVALID_CALCULATION_MODE, e); } } public String getRiver() { return getDataAsString(FIELD_RIVER); } }