ingo@238: package de.intevation.gnv.exports; ingo@238: ingo@238: import java.util.Date; ingo@238: import java.text.DateFormat; ingo@238: import java.text.SimpleDateFormat; ingo@238: ingo@238: import org.apache.log4j.Logger; ingo@238: ingo@238: import com.vividsolutions.jts.io.ParseException; ingo@238: import com.vividsolutions.jts.geom.Point; ingo@238: ingo@238: import de.intevation.gnv.geobackend.base.Result; ingo@238: import de.intevation.gnv.transition.exception.TransitionException; ingo@238: ingo@238: /** ingo@238: * @author Ingo Weinzierl (ingo.weinzierl@intevation.de) ingo@238: */ ingo@238: public class SimpleOdvDataCollector ingo@238: extends ShapeDataCollector ingo@238: { ingo@238: private static Logger log = Logger.getLogger(SimpleOdvDataCollector.class); ingo@238: ingo@238: public static final String SRC_FORMAT = "yyyy.MM.dd HH:mm:ss"; ingo@238: public static final String DEST_FORMAT = "yyyy-MM-dd HH:mm"; ingo@238: ingo@238: public static DateFormat srcFormat = new SimpleDateFormat(SRC_FORMAT); ingo@238: public static DateFormat destFormat = new SimpleDateFormat(DEST_FORMAT); ingo@238: ingo@238: public SimpleOdvDataCollector(String[] names) { ingo@238: super(names); ingo@238: } ingo@238: ingo@238: public String[] getData(Result result) ingo@238: throws TransitionException ingo@238: { ingo@238: if (rd == null) ingo@238: init(result); ingo@238: ingo@238: try { ingo@238: String [] entries = new String[names.length+1]; ingo@238: int j = 0; ingo@238: for (int i = 0; i < names.length; i++) { ingo@238: ingo@238: if (names[i].equals("SHAPE")) { ingo@238: Point p = (Point)wktReader.read(result.getString("SHAPE")); ingo@238: ingo@238: entries[j++] = ""+p.getX(); ingo@238: entries[j++] = ""+p.getY(); ingo@238: } ingo@238: // Change the datetime format from yyyy.MM.dd HH:mm:ss to ingo@238: // yyyy-MM-dd HH:mm ingo@238: else if (names[i].equals("TIMEVALUE")) { ingo@238: Date source = srcFormat.parse(result.getString(names[i])); ingo@238: entries[j++] = destFormat.format(source); ingo@238: } ingo@238: else { ingo@238: entries[j++] = result.getString(names[i]); ingo@238: } ingo@238: } ingo@238: ingo@238: return entries; ingo@238: } ingo@238: catch (ParseException pe) { ingo@238: log.error(pe, pe); ingo@238: throw new TransitionException( ingo@238: "Error occured while parsing source data."); ingo@238: } ingo@238: catch (java.text.ParseException pe) { ingo@238: log.error(pe, pe); ingo@238: throw new TransitionException( ingo@238: "Error occured while parsing source data."); ingo@238: } ingo@238: } ingo@238: }