teichmann@5863: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde teichmann@5863: * Software engineering by Intevation GmbH teichmann@5863: * teichmann@5863: * This file is Free Software under the GNU AGPL (>=v3) teichmann@5863: * and comes with ABSOLUTELY NO WARRANTY! Check out the teichmann@5863: * documentation coming with Dive4Elements River for details. teichmann@5863: */ teichmann@5863: teichmann@5831: package org.dive4elements.river.artifacts.model; ingo@2215: ingo@2215: import org.apache.log4j.Logger; ingo@2215: teichmann@5831: import org.dive4elements.artifacts.Artifact; teichmann@5831: import org.dive4elements.artifacts.CallContext; ingo@2215: teichmann@5831: import org.dive4elements.artifactdatabase.state.Facet; ingo@2215: teichmann@5831: import org.dive4elements.river.artifacts.FLYSArtifact; teichmann@5831: import org.dive4elements.river.artifacts.states.DefaultState.ComputeType; ingo@2215: ingo@2215: ingo@2215: /** ingo@2215: * @author Ingo Weinzierl ingo@2215: */ ingo@2215: public class HistoricalDischargeFacet extends DataFacet { ingo@2215: ingo@2215: private static final Logger logger = ingo@2215: Logger.getLogger(HistoricalDischargeFacet.class); ingo@2215: ingo@2215: ingo@2215: public HistoricalDischargeFacet() { ingo@2215: } ingo@2215: ingo@2215: ingo@2215: public HistoricalDischargeFacet(int index, String name, String desc) { ingo@2215: super(index, name, desc, ComputeType.ADVANCE, null, null); ingo@2215: } ingo@2215: ingo@2215: ingo@2215: public HistoricalDischargeFacet( ingo@2215: int index, ingo@2215: String name, ingo@2215: String description, ingo@2215: ComputeType type, ingo@2215: String stateID, ingo@2215: String hash ingo@2215: ingo@2215: ) { ingo@2215: super(index, name, description, type, hash, stateID); ingo@2215: } ingo@2215: ingo@2215: ingo@2215: @Override ingo@2215: public Facet deepCopy() { ingo@2215: WaterlevelFacet copy = new WaterlevelFacet(); ingo@2215: copy.set(this); ingo@2215: copy.type = type; ingo@2215: copy.hash = hash; ingo@2215: copy.stateId = stateId; ingo@2215: return copy; ingo@2215: } ingo@2215: ingo@2215: ingo@2215: @Override ingo@2215: public Object getData(Artifact artifact, CallContext context) { ingo@2215: if (logger.isDebugEnabled()) { ingo@2215: logger.debug("Get data for historical discharge curves at index: " + ingo@2215: index + " / stateId: " + stateId); ingo@2215: } ingo@2215: ingo@2215: FLYSArtifact flys = (FLYSArtifact) artifact; ingo@2215: ingo@2215: CalculationResult res = (CalculationResult) ingo@2215: flys.compute(context, hash, stateId, type, false); ingo@2215: ingo@4241: HistoricalDischargeData data = (HistoricalDischargeData) res.getData(); ingo@4241: WQTimerange[] wqts = (WQTimerange[]) data.getWQTimeranges(); ingo@2215: ingo@2239: return wqts[index]; ingo@2215: } ingo@2215: } ingo@2215: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :