view gnv-artifacts/src/main/java/de/intevation/gnv/exports/HorizontalProfileDataCollector.java @ 234:a7fa7b404897

HorizontalProfile CSV-export uses an Exporter instead of writing csv on its own. gnv-artifacts/trunk@302 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 09 Nov 2009 09:52:18 +0000
parents
children
line wrap: on
line source
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 HorizontalProfileDataCollector
extends DefaultDataCollector
{
    private Logger log = Logger.getLogger(HorizontalProfileDataCollector.class);

    protected WKTReader wktReader = new WKTReader();

    public HorizontalProfileDataCollector(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