tom@8858: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde tom@8858: * Software engineering by Intevation GmbH tom@8858: * tom@8858: * This file is Free Software under the GNU AGPL (>=v3) tom@8858: * and comes with ABSOLUTELY NO WARRANTY! Check out the tom@8858: * documentation coming with Dive4Elements River for details. tom@8858: */ tom@8858: rrenkert@8302: package org.dive4elements.river.artifacts.states; rrenkert@8302: rrenkert@8302: import java.util.List; tom@8435: import java.util.Date; rrenkert@8302: rrenkert@8302: import org.dive4elements.artifactdatabase.state.Facet; rrenkert@8302: import org.dive4elements.artifacts.CallContext; rrenkert@8302: import org.dive4elements.river.artifacts.D4EArtifact; rrenkert@8302: import org.dive4elements.river.artifacts.access.RiverAccess; rrenkert@8302: import org.dive4elements.river.artifacts.model.GaugeDischargeCurveFacet; rrenkert@8302: import org.dive4elements.river.artifacts.resources.Resources; rrenkert@8302: tom@8435: import org.dive4elements.river.model.TimeInterval; rrenkert@8302: rrenkert@8302: public class GaugeDischargeCurveState rrenkert@8302: extends DefaultState rrenkert@8302: { rrenkert@8302: rrenkert@8302: @Override rrenkert@8302: public Object computeAdvance( rrenkert@8302: D4EArtifact artifact, rrenkert@8302: String hash, rrenkert@8302: CallContext context, rrenkert@8302: List facets, rrenkert@8302: Object old rrenkert@8302: ) { tom@8435: String gaugeName = artifact.getDataAsString("gauge_name"); tom@8435: TimeInterval validity = new RiverAccess(artifact).getRiver() tom@8435: .determineGaugeByName(gaugeName).fetchMasterDischargeTable() tom@8435: .getTimeInterval(); tom@8435: Date stopTime = validity.getStopTime(); tom@8435: String description = Resources.getMsg( tom@8435: context.getMeta(), tom@8856: "chart.discharge.curve.model" tom@8856: + (stopTime != null ? "" : ".nostop"), tom@8435: new Object[] {gaugeName, tom@8435: validity.getStartTime(), tom@8435: stopTime tom@8435: } tom@8435: ); tom@8435: tom@8856: facets.add(new GaugeDischargeCurveFacet("gauge_discharge_curve", tom@8856: description)); tom@8856: facets.add(new GaugeDischargeCurveFacet("at", tom@8856: "gauge_discharge_curve")); tom@8856: facets.add(new GaugeDischargeCurveFacet("csv", tom@8856: "gauge_discharge_curve")); tom@8856: facets.add(new GaugeDischargeCurveFacet("pdf", tom@8856: "gauge_discharge_curve")); rrenkert@8302: return null; rrenkert@8302: } rrenkert@8302: }