tim@173: /** tim@173: * tim@173: */ tim@173: package de.intevation.gnv.transition; tim@173: tim@173: import java.util.ArrayList; tim@173: import java.util.Collection; tim@173: tim@173: import org.apache.log4j.Logger; tim@173: tim@173: import com.vividsolutions.jts.geom.Point; tim@173: tim@173: import de.intevation.gnv.geobackend.base.Result; tim@173: import de.intevation.gnv.transition.describedata.KeyValueDescibeData; tim@173: import de.intevation.gnv.transition.describedata.NamedCollection; tim@173: import de.intevation.gnv.utils.InputValidator; tim@173: import de.intevation.gnv.utils.exception.ValidationException; tim@173: tim@173: /** tim@173: * @author Tim Englich tim@173: * tim@173: */ tim@173: public class CoordinateSelectionTransition extends TransitionBase { tim@173: tim@173: /** tim@173: * the logger, used to log exceptions and additonaly information tim@173: */ tim@173: private static Logger log = Logger.getLogger(CoordinateSelectionTransition.class); tim@173: tim@173: /** tim@173: * The UID of this Class tim@173: */ tim@173: private static final long serialVersionUID = 6318923553625195063L; tim@173: tim@173: /** tim@173: * Constructor tim@173: */ tim@173: public CoordinateSelectionTransition() { tim@173: super(); tim@173: } tim@173: tim@173: /** tim@173: * @see de.intevation.gnv.transition.Transition#validate() tim@173: */ tim@173: public boolean validate() { tim@173: return true; tim@173: } tim@173: tim@173: @Override tim@173: protected void purifyResult(Collection result, String uuid) { tim@173: log.debug("CoordinateSelectionTransition.purifyResult"); tim@173: if (this.descibeData == null) { tim@173: this.descibeData = new ArrayList(); tim@173: } tim@173: NamedCollection keyValueDescibeData = this tim@173: .extractKVP(result, "FEATUREID", "SHAPE"); tim@173: this.descibeData.add(keyValueDescibeData); tim@173: } tim@173: tim@173: @Override tim@173: protected String prepareInputData4RegionDBQuery(String value) { tim@173: log.debug("CoordinateSelectionTransition.prepareInputData4RegionDBQuery"); tim@173: double distance=0.; tim@173: String returnValue = null; tim@173: try { tim@173: Point center = new InputValidator().getPointValue(value); tim@173: String meshIDValue = super.inputData.get("meshid").getValue(); tim@173: int segments = 97; tim@173: int meshid = new Integer(meshIDValue); tim@173: if (meshid == 3 || meshid == 5){ // TODO nicht hier festbrennen. tim@173: distance = 0.15; //nord-ostsee 6nm // 97 Stützpunkte tim@173: }else if (meshid == 1 || meshid == 4){ tim@173: distance = 0.03; //Kuestenmodell 1 nm tim@173: }else if (meshid == 2 || meshid == 321){ tim@173: distance = 0.3; //SST Karten ca 20km tim@173: }else if (meshid == 641){ tim@173: distance = 0.3; //Eisdaten Klima tim@173: } tim@173: returnValue = center.buffer(distance,segments).toText(); tim@173: } catch (NumberFormatException e) { tim@173: log.error(e,e); tim@173: } catch (ValidationException e) { tim@173: log.error(e,e); tim@173: } tim@173: return returnValue; tim@173: tim@173: } tim@173: }