Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/HistoricalDischargeComputeState.java @ 2228:4db19a88bddb
Implemented the first step of Calculation6; create Facets for each calculation results.
flys-artifacts/trunk@3868 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 01 Feb 2012 14:48:00 +0000 |
parents | ebbb18ed78c4 |
children | 7335c526befd |
line wrap: on
line source
package de.intevation.flys.artifacts.states; import java.util.List; import org.w3c.dom.Element; import org.apache.log4j.Logger; import de.intevation.artifacts.Artifact; import de.intevation.artifacts.CallContext; import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator; import de.intevation.artifactdatabase.state.Facet; import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.WINFOArtifact; import de.intevation.flys.artifacts.model.CalculationResult; import de.intevation.flys.artifacts.model.FacetTypes; import de.intevation.flys.artifacts.model.HistoricalDischargeFacet; import de.intevation.flys.artifacts.model.WQTimerange; /** * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ public class HistoricalDischargeComputeState extends DefaultState implements FacetTypes { private static final Logger logger = Logger.getLogger(HistoricalDischargeComputeState.class); @Override protected void appendItems( Artifact artifact, ElementCreator creator, String name, CallContext context, Element select ) { // TODO IMPLEMENT ME } @Override public Object computeAdvance( FLYSArtifact artifact, String hash, CallContext context, List<Facet> facets, Object old ) { logger.debug("HistoricalDischargeComputeState.computeAdvance"); WINFOArtifact winfo = (WINFOArtifact) artifact; CalculationResult res = old instanceof CalculationResult ? (CalculationResult) old : winfo.getHistoricalDischargeData(); if (facets == null) { return res; } WQTimerange[] data = (WQTimerange[]) res.getData(); if (data == null || data.length == 0) { logger.warn("Historical Discharge calculation has no results!"); return res; } prepareFacets(facets, data); return res; } protected void prepareFacets(List<Facet> facets, WQTimerange[] wqts) { int i = 0; for (WQTimerange wqt: wqts) { logger.debug("Prepare facet for: " + wqt.getName()); // TODO CREATE BETTER TITLE FOR FACETS facets.add(new HistoricalDischargeFacet( i++, HISTORICAL_DISCHARGE_Q, wqt.getName())); } } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :