gernotbelger@9215: /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@9215: * Software engineering by gernotbelger@9215: * Björnsen Beratende Ingenieure GmbH gernotbelger@9215: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@9215: * gernotbelger@9215: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@9215: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@9215: * documentation coming with Dive4Elements River for details. gernotbelger@9215: */ gernotbelger@9215: package org.dive4elements.river.artifacts.sinfo.flood_duration; gernotbelger@9215: gernotbelger@9215: import org.dive4elements.artifactdatabase.state.Facet; gernotbelger@9215: import org.dive4elements.river.artifacts.sinfo.common.SInfoResultFacet; gernotbelger@9215: import org.dive4elements.river.artifacts.states.DefaultState.ComputeType; gernotbelger@9215: gernotbelger@9215: /** gernotbelger@9215: * @author Domenico Nardi Tironi gernotbelger@9215: */ gernotbelger@9215: final class FloodDurationFacet extends SInfoResultFacet { gernotbelger@9215: gernotbelger@9215: private static final long serialVersionUID = 1L; gernotbelger@9215: gernotbelger@9215: protected int waterlevelIndex = -1; // for custom result gernotbelger@9215: gernotbelger@9215: private FloodDurationFacet() { gernotbelger@9215: // required for clone operation deepCopy() gernotbelger@9215: } gernotbelger@9215: gernotbelger@9215: public FloodDurationFacet(final int facetIndex, final int resultIndex, final int waterlevelIndex, final String name, final String description, gernotbelger@9215: final ComputeType type, final String yAxisLabelKey, final String hash, final String stateId) { gernotbelger@9215: super(facetIndex, resultIndex, name, description, yAxisLabelKey, type, stateId, hash); gernotbelger@9215: gernotbelger@9215: this.waterlevelIndex = waterlevelIndex; gernotbelger@9215: } gernotbelger@9215: gernotbelger@9215: public int getWaterlevelIndex() { gernotbelger@9215: return this.waterlevelIndex; gernotbelger@9215: } gernotbelger@9215: gernotbelger@9215: /** Copy deeply. */ gernotbelger@9215: @Override gernotbelger@9215: public Facet deepCopy() { gernotbelger@9215: // FIXME: why not simply use the full constructor instead? gernotbelger@9215: final FloodDurationFacet copy = new FloodDurationFacet(); gernotbelger@9215: // FIXME: why does DataFacet does not override set? Bad access to variables of parent! gernotbelger@9215: copy.set(this); gernotbelger@9215: copy.type = this.type; gernotbelger@9215: copy.hash = this.hash; gernotbelger@9215: copy.stateId = this.stateId; gernotbelger@9215: copy.waterlevelIndex = this.waterlevelIndex; gernotbelger@9215: return copy; gernotbelger@9215: } gernotbelger@9215: }