Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/GaugeDischargeState.java @ 2989:ee3dbc4a802d
Added more checks in CrossSectionFactory.isNewst() to prevent IndexOutOfBoundsExceptions.
flys-artifacts/trunk@4536 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Sun, 27 May 2012 13:35:15 +0000 |
parents | 89731cb8c385 |
children | 49727e9dcfde |
line wrap: on
line source
package de.intevation.flys.artifacts.states; import java.util.List; import org.apache.log4j.Logger; import de.intevation.artifacts.CallMeta; import de.intevation.artifacts.CallContext; import de.intevation.artifactdatabase.state.Facet; import de.intevation.flys.artifacts.ChartArtifact; import de.intevation.flys.artifacts.GaugeDischargeArtifact; import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.model.GaugeDischargeFacet; import de.intevation.flys.artifacts.model.FacetTypes; import de.intevation.flys.artifacts.model.WQKms; import de.intevation.flys.artifacts.model.ReportFacet; import de.intevation.flys.artifacts.model.EmptyFacet; import de.intevation.flys.artifacts.model.CalculationResult; import de.intevation.flys.artifacts.resources.Resources; import de.intevation.flys.utils.FLYSUtils; /** * The only state for an GaugeDischargeState (River and km known). */ public class GaugeDischargeState extends DefaultState implements FacetTypes { /** Developer-centric description of facet. */ public static final String I18N_DESCRIPTION = "facet.discharge.curve"; /** The logger that is used in this state. */ private static final Logger logger = Logger.getLogger(GaugeDischargeState.class); /** * Add an GaugeDischargeFacet to list of Facets. * * @param artifact Ignored. * @param hash Ignored. * @param context Ignored. * @param meta CallMeta to be used for internationalization. * @param facets List to add AnnotationFacet to. * * @return null. */ @Override public Object computeInit( FLYSArtifact artifact, String hash, Object context, CallMeta meta, List<Facet> facets ) { logger.debug("GaugeDischargeState.computeInit()"); // TODO caching, / CalculationResultusage GaugeDischargeFacet facet = new GaugeDischargeFacet( 0, DISCHARGE_CURVE, DISCHARGE_CURVE); //Resources.getMsg(meta, I18N_DESCRIPTION, I18N_DESCRIPTION)); facets.add(facet); return null; } //WINFOArtifact#getDischargeCurveData @Override public Object computeAdvance( FLYSArtifact artifact, String hash, CallContext context, List<Facet> facets, Object old ) { // TODO why are the facets null here? //if (facets == null) facets = new List<Facet>(); if (artifact instanceof GaugeDischargeArtifact) { logger.debug("GaugeDischargeState.computeAdvance()"); GaugeDischargeArtifact dischargeArtifact = (GaugeDischargeArtifact) artifact; CalculationResult res; /*if (old instanceof CalculationResult) { res = (CalculationResult) old; } else {*/ res = dischargeArtifact.getDischargeCurveData(); //} WQKms[] wqkms = (WQKms[]) res.getData(); if (wqkms != null && facets != null) { logger.debug("GaugeDischargeState.computeAdvance(): create facets"); // Create an i18ed name for a (w or q) duration curve facet. Object[] args = new Object[] { FLYSUtils.getRiver(dischargeArtifact).getName(), FLYSUtils.getLocations(dischargeArtifact)[0] }; String nameW = Resources.getMsg( context.getMeta(), "chart.duration.curve.curve.w", "", args); String nameQ = Resources.getMsg( context.getMeta(), "chart.duration.curve.curve.q", "", args); /*Facet w = new DurationCurveFacet(DURATION_W, nameW); Facet q = new DurationCurveFacet(DURATION_Q, nameQ); facets.add(w);*/ GaugeDischargeFacet facet = new GaugeDischargeFacet( 0, "A"+DISCHARGE_CURVE, "A"+DISCHARGE_CURVE); //Resources.getMsg(meta, I18N_DESCRIPTION, I18N_DESCRIPTION)); facets.add(facet); //facets.add(new DataFacet(CSV, "CSV data")); //facets.add(new DataFacet(PDF, "PDF data")); if (res.getReport().hasProblems()) { facets.add(new ReportFacet()); } } else { if (wqkms == null) logger.debug("GaugeDischargeState.computeAdvance(): wqkms 0"); else logger.debug("GaugeDischargeState.computeAdvance(): facets 0"); } return res; } else if (artifact instanceof ChartArtifact) { ChartArtifact chart = (ChartArtifact)artifact; facets.add(new EmptyFacet()); return null; } return null; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :