ingo@2191: package de.intevation.flys.artifacts.states; ingo@2191: ingo@2215: import java.util.List; ingo@2191: ingo@2191: import org.w3c.dom.Element; ingo@2191: ingo@2215: import org.apache.log4j.Logger; ingo@2215: ingo@2191: import de.intevation.artifacts.Artifact; ingo@2191: import de.intevation.artifacts.CallContext; ingo@2191: ingo@2191: import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator; ingo@2191: ingo@2215: import de.intevation.artifactdatabase.state.Facet; ingo@2191: ingo@2215: import de.intevation.flys.artifacts.FLYSArtifact; ingo@2215: import de.intevation.flys.artifacts.WINFOArtifact; ingo@2215: import de.intevation.flys.artifacts.model.CalculationResult; ingo@2215: import de.intevation.flys.artifacts.model.FacetTypes; ingo@2215: import de.intevation.flys.artifacts.model.HistoricalDischargeFacet; ingo@2228: import de.intevation.flys.artifacts.model.WQTimerange; ingo@2191: ingo@2191: ingo@2191: /** ingo@2191: * @author Ingo Weinzierl ingo@2191: */ ingo@2215: public class HistoricalDischargeComputeState ingo@2215: extends DefaultState ingo@2215: implements FacetTypes ingo@2215: { ingo@2215: ingo@2215: private static final Logger logger = ingo@2215: Logger.getLogger(HistoricalDischargeComputeState.class); ingo@2215: ingo@2191: ingo@2191: @Override ingo@2191: protected void appendItems( ingo@2191: Artifact artifact, ingo@2191: ElementCreator creator, ingo@2191: String name, ingo@2191: CallContext context, ingo@2191: Element select ingo@2191: ) { ingo@2191: // TODO IMPLEMENT ME ingo@2191: } ingo@2215: ingo@2215: ingo@2215: @Override ingo@2215: public Object computeAdvance( ingo@2215: FLYSArtifact artifact, ingo@2215: String hash, ingo@2215: CallContext context, ingo@2215: List facets, ingo@2215: Object old ingo@2215: ) { ingo@2215: logger.debug("HistoricalDischargeComputeState.computeAdvance"); ingo@2215: ingo@2215: WINFOArtifact winfo = (WINFOArtifact) artifact; ingo@2215: ingo@2215: CalculationResult res = old instanceof CalculationResult ingo@2215: ? (CalculationResult) old ingo@2215: : winfo.getHistoricalDischargeData(); ingo@2215: ingo@2215: if (facets == null) { ingo@2215: return res; ingo@2215: } ingo@2215: ingo@2228: WQTimerange[] data = (WQTimerange[]) res.getData(); ingo@2228: if (data == null || data.length == 0) { ingo@2228: logger.warn("Historical Discharge calculation has no results!"); ingo@2228: return res; ingo@2228: } ingo@2215: ingo@2228: prepareFacets(facets, data); ingo@2215: ingo@2215: return res; ingo@2215: } ingo@2228: ingo@2228: ingo@2228: protected void prepareFacets(List facets, WQTimerange[] wqts) { ingo@2228: int i = 0; ingo@2228: ingo@2228: for (WQTimerange wqt: wqts) { ingo@2228: logger.debug("Prepare facet for: " + wqt.getName()); ingo@2228: ingo@2228: // TODO CREATE BETTER TITLE FOR FACETS ingo@2228: ingo@2228: facets.add(new HistoricalDischargeFacet( ingo@2228: i++, ingo@2228: HISTORICAL_DISCHARGE_Q, ingo@2228: wqt.getName())); ingo@2228: } ingo@2228: } ingo@2191: } ingo@2191: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :