ingo@383: package de.intevation.flys.artifacts.states;
ingo@383:
ingo@687: import java.util.List;
ingo@687:
ingo@383: import org.apache.log4j.Logger;
ingo@383:
ingo@692: import de.intevation.artifacts.CallContext;
ingo@692:
ingo@692: import de.intevation.artifactdatabase.state.DefaultFacet;
ingo@687: import de.intevation.artifactdatabase.state.Facet;
ingo@687:
ingo@687: import de.intevation.flys.artifacts.FLYSArtifact;
ingo@687: import de.intevation.flys.artifacts.WINFOArtifact;
ingo@687: import de.intevation.flys.artifacts.model.ComputeCallback;
ingo@689: import de.intevation.flys.artifacts.model.ComputeCallbackAdapter;
ingo@692: import de.intevation.flys.artifacts.model.FacetTypes;
ingo@692: import de.intevation.flys.artifacts.model.WQDay;
ingo@692: import de.intevation.flys.artifacts.resources.Resources;
ingo@687:
ingo@383: /**
ingo@383: * The final state that will be reached after the duration curve calculation
ingo@383: * mode has been chosen.
ingo@383: *
ingo@383: * @author Ingo Weinzierl
ingo@383: */
ingo@692: public class DurationCurveState
ingo@692: extends DefaultState
ingo@692: implements FacetTypes
ingo@692: {
ingo@383: /** The logger that is used in this state.*/
ingo@383: private static Logger logger = Logger.getLogger(DurationCurveState.class);
ingo@383:
sascha@660: public DurationCurveState() {
ingo@383: }
ingo@687:
ingo@687:
ingo@687: @Override
ingo@687: public ComputeCallback createComputeCallback(
ingo@687: String hash, FLYSArtifact flys)
ingo@687: {
ingo@687: final WINFOArtifact winfo = (WINFOArtifact) flys;
ingo@687:
ingo@689: return new ComputeCallbackAdapter() {
ingo@689:
ingo@689: @Override
ingo@692: public Object computeAdvance(
ingo@692: CallContext context,
ingo@692: List facets)
ingo@692: {
ingo@692: WQDay res = winfo.getDurationCurveData();
ingo@692:
ingo@692: if (res == null) {
ingo@692: logger.debug("No results given.");
ingo@692: return null;
ingo@692: }
ingo@692:
ingo@692: Object[] args = new Object[] {
ingo@692: winfo.getRiver().getName()
ingo@692: };
ingo@692:
ingo@692: String nameW = Resources.getMsg(
ingo@692: context.getMeta(),
ingo@692: "chart.duration.curve.curve.w",
ingo@692: "",
ingo@692: args);
ingo@692:
ingo@692: String nameQ = Resources.getMsg(
ingo@692: context.getMeta(),
ingo@692: "chart.duration.curve.curve.q",
ingo@692: "",
ingo@692: args);
ingo@692:
ingo@692: Facet w = new DefaultFacet(0, DURATION_W, nameW);
ingo@692: Facet q = new DefaultFacet(0, DURATION_Q, nameQ);
ingo@692:
ingo@692: facets.add(w);
ingo@692: facets.add(q);
ingo@692:
ingo@692: return res;
ingo@687: }
ingo@687: };
ingo@687: }
ingo@383: }
ingo@383: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :