Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java @ 322:448d0dc64357
The inserted ranges (distance and WQ ranges) are validated in the feed() operation.
flys-artifacts/trunk@1716 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 18 Apr 2011 12:36:08 +0000 |
parents | 89bd0417418f |
children | ed3325a0232a |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java Mon Apr 18 09:34:18 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java Mon Apr 18 12:36:08 2011 +0000 @@ -1,5 +1,7 @@ package de.intevation.flys.artifacts.states; +import java.util.Map; + import org.apache.log4j.Logger; import org.w3c.dom.Element; @@ -21,7 +23,7 @@ /** * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ -public class LocationDistanceSelect extends DefaultState { +public class LocationDistanceSelect extends RangeState { /** The logger used in this class.*/ private static Logger logger = Logger.getLogger(LocationDistanceSelect.class); @@ -30,6 +32,15 @@ /** The default step width.*/ public static final String DEFAULT_STEP = "100"; + /** The name of the 'from' field. */ + public static final String FROM = "ld_from"; + + /** The name of the 'to' field. */ + public static final String TO = "ld_to"; + + /** The name of the 'step' field. */ + public static final String STEP = "ld_step"; + /** * The default constructor that initializes an empty State object. */ @@ -139,5 +150,32 @@ return river != null ? river.determineMinMaxDistance() : null; } + + + @Override + public boolean validate(Artifact artifact, CallContext context) + throws IllegalArgumentException + { + logger.debug("LocationDistanceSelect.validate"); + + Map<String, StateData> data = getData(); + + String fromStr = (String) data.get(FROM).getValue(); + String toStr = (String) data.get(TO).getValue(); + String stepStr = (String) data.get(STEP).getValue(); + + try { + double from = Double.parseDouble(fromStr); + double to = Double.parseDouble(toStr); + double step = Double.parseDouble(stepStr); + + double[] minmaxDist = getMinMaxDistance(artifact); + + return validateRange(minmaxDist[0], minmaxDist[1], from, to, step); + } + catch (NumberFormatException nfe) { + throw new IllegalArgumentException("error_feed_number_format"); + } + } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :