Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java @ 934:d0f3fea20f01
Fixed corner case.
flys-artifacts/trunk@2320 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Tue, 12 Jul 2011 08:05:54 +0000 |
parents | 3fd891d5228d |
children | eccf966fb677 |
line wrap: on
line source
package de.intevation.flys.artifacts.states; import java.util.List; import org.apache.log4j.Logger; import de.intevation.artifacts.Artifact; import de.intevation.artifacts.CallContext; import de.intevation.artifactdatabase.state.Facet; import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.WINFOArtifact; import de.intevation.flys.artifacts.model.FacetTypes; import de.intevation.flys.artifacts.model.ReportFacet; import de.intevation.flys.artifacts.model.WaterlevelFacet; import de.intevation.flys.artifacts.model.WQKms; import de.intevation.flys.artifacts.model.DataFacet; import de.intevation.flys.artifacts.model.CalculationResult; public class WaterlevelState extends DefaultState implements FacetTypes { /** The logger that is used in this state.*/ private static Logger logger = Logger.getLogger(WaterlevelState.class); @Override protected String getUIProvider() { return "continue"; } /** * This method returns always true, because there is no data to validate. * * @param artifact The Artifact. * @param context The CallContext. * * @return always true. */ @Override public boolean validate(Artifact artifact, CallContext context) throws IllegalArgumentException { return true; } @Override public Object computeAdvance( FLYSArtifact artifact, String hash, CallContext context, List<Facet> facets, Object old ) { WINFOArtifact winfo = (WINFOArtifact)artifact; String id = getID(); CalculationResult res = old instanceof CalculationResult ? (CalculationResult)old : winfo.getWaterlevelData(); if (facets == null) { return res; } WQKms [] wqkms = (WQKms [])res.getData(); for (int i = 0; i < wqkms.length; i++) { String nameW = null; String nameQ = null; if (winfo.isQ()) { nameQ = wqkms[i].getName(); nameW = "W(" + nameQ + ")"; } else { nameW = wqkms[i].getName(); nameQ = "Q(" + nameQ + ")"; } logger.debug("Create facet: " + nameW); logger.debug("Create facet: " + nameQ); Facet w = new WaterlevelFacet( i, LONGITUDINAL_W, nameW, ComputeType.ADVANCE, id, hash); Facet q = new WaterlevelFacet( i, LONGITUDINAL_Q, nameQ, ComputeType.ADVANCE, id, hash); facets.add(w); facets.add(q); } if (wqkms.length > 0) { Facet wst = new DataFacet( WST, "WST data", ComputeType.ADVANCE, hash, id); Facet csv = new DataFacet( CSV, "CSV data", ComputeType.ADVANCE, hash, id); facets.add(wst); facets.add(csv); } if (res.getReport().hasProblems()) { facets.add(new ReportFacet(ComputeType.ADVANCE, hash, id)); } return res; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :