diff gnv-artifacts/src/main/java/de/intevation/gnv/exports/ShapeDataCollector.java @ 235:c8ecc0c0bcb4

Renaming HorizontalProfileDataCollector into ShapeDataCollector. gnv-artifacts/trunk@303 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 09 Nov 2009 10:16:10 +0000
parents
children 3ea030aafe65
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/exports/ShapeDataCollector.java	Mon Nov 09 10:16:10 2009 +0000
@@ -0,0 +1,60 @@
+package de.intevation.gnv.exports;
+
+import java.util.List;
+import java.util.ArrayList;
+
+import org.apache.log4j.Logger;
+
+import com.vividsolutions.jts.io.WKTReader;
+import com.vividsolutions.jts.io.ParseException;
+import com.vividsolutions.jts.geom.Point;
+
+import de.intevation.gnv.geobackend.base.Result;
+import de.intevation.gnv.transition.exception.TransitionException;
+
+
+/**
+ * @author Ingo Weinzierl (ingo.weinzierl@intevation.de)
+ */
+public class ShapeDataCollector
+extends DefaultDataCollector
+{
+    private Logger log = Logger.getLogger(ShapeDataCollector.class);
+
+    protected WKTReader wktReader = new WKTReader();
+
+    public ShapeDataCollector(String[] names) {
+        super(names);
+    }
+
+    public String[] getData(Result result) 
+    throws TransitionException {
+
+        if (rd == null)
+            init(result);
+
+        try {
+            String [] entries = new String[names.length+1];
+            int j             = 0;
+            for (int i = 0; i < names.length; i++) {
+                
+                if (names[i].equals("SHAPE")) {
+                    Point p  = (Point)wktReader.read(result.getString("SHAPE"));
+
+                    entries[j++] = ""+p.getX();
+                    entries[j++] = ""+p.getY();
+                }
+                else {
+                    entries[j++] = result.getString(names[i]);
+                }
+            }
+
+            return entries;
+        }
+        catch (ParseException pe) {
+            log.error(pe, pe);
+            throw new TransitionException(
+                "Error occured while parsing a Point from WKT.");
+        }
+    }
+}

http://dive4elements.wald.intevation.org