Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/FixationArtifact.java @ 4569:276d9bd3c77d
Workaround for NPE in FloodMapState.
author | Christian Lins <christian.lins@intevation.de> |
---|---|
date | Tue, 20 Nov 2012 12:53:14 +0100 |
parents | 03b8d10a99c0 |
children | b195fede1c3b |
line wrap: on
line source
package de.intevation.flys.artifacts; import de.intevation.artifacts.CallContext; import de.intevation.flys.artifacts.geom.Lines; import de.intevation.flys.artifacts.StaticWKmsArtifact; import de.intevation.flys.artifacts.model.CalculationResult; import de.intevation.flys.artifacts.model.WKms; import de.intevation.flys.artifacts.model.fixings.FixRealizingResult; import de.intevation.flys.artifacts.states.DefaultState.ComputeType; import de.intevation.flys.model.FastCrossSectionLine; import org.apache.log4j.Logger; /** * The default fixation analysis artifact. * * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> */ public class FixationArtifact extends FLYSArtifact implements WaterLineArtifact { /** The logger for this class. */ private static Logger logger = Logger.getLogger(FixationArtifact.class); /** The name of the artifact. */ public static final String ARTIFACT_NAME = "fixanalysis"; /* FacetActivity for this artifact is registered in FixAnalysisCompute . */ /** * The default constructor. */ public FixationArtifact() { logger.debug("ctor()"); } /** * Returns the name of the concrete artifact. * * @return the name of the concrete artifact. */ @Override public String getName() { return ARTIFACT_NAME; } @Override public Lines.LineData getWaterLines( int facetIdx, FastCrossSectionLine csl, double d, double w, CallContext context ) { FixRealizingResult result = (FixRealizingResult) ((CalculationResult)this.compute(context, ComputeType.ADVANCE, false)).getData(); WKms wkms = result.getWQKms()[facetIdx]; double km = csl.getKm(); // Find W at km. double wAtKm; wAtKm = StaticWKmsArtifact.getWAtKm(wkms, km); if (wAtKm == -1 || Double.isNaN(wAtKm)) { logger.warn("Waterlevel at km " + km + " unknown."); return new Lines.LineData(new double[][] {{}}, 0d, 0d); } // This should be FixRealizationResult, which can be getWQKms()ed return Lines.createWaterLines(csl.getPoints(), wAtKm); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :