/* * Project Name: OpenJUMP * Original Organization Name: The JUMP Pilot Project * Original Programmer Name: Martin Davis * Current Maintainer Name: The JUMP Pilot Project * Current Maintainer Contact Information * E-Mail Address: sunburned.surveyor@gmail.com * Copyright Holder: Martin Davis * Date Last Modified: Dec 12, 2007 * IDE Name: Eclipse * IDE Version: Europa * Type: Java Class */ package org.openjump.core.apitools; import java.util.Iterator; import java.util.List; import com.vividsolutions.jump.feature.Feature; import com.vividsolutions.jump.feature.FeatureCollection; import com.vividsolutions.jump.io.*; public class IOTools { private static String getExtension(String filename) { int len = filename.length(); String extension = filename.substring(len - 3, len); return extension; } public static FeatureCollection load(String filename) throws Exception { String extension = getExtension(filename); if (extension.equalsIgnoreCase("SHP")) return loadShapefile(filename); if (extension.equalsIgnoreCase("JML")) return loadJMLFile(filename); if (extension.equalsIgnoreCase("WKT")) return loadWKT(filename); throw new Exception("Unknown file type: " + extension); } public static FeatureCollection load(String filename, String zipFileName) throws Exception { String extension = getExtension(filename); if (extension.equalsIgnoreCase("SHP")) return loadShapefile(filename, zipFileName); throw new Exception("Unknown file type: " + extension); } public static FeatureCollection loadJMLFile(String filename) throws Exception { JMLReader rdr = new JMLReader(); DriverProperties dp = new DriverProperties(); dp.set("File", filename); return rdr.read(dp); } public static FeatureCollection loadShapefile(String filename) throws Exception { ShapefileReader rdr = new ShapefileReader(); DriverProperties dp = new DriverProperties(); dp.set("File", filename); return rdr.read(dp); } public static FeatureCollection loadShapefile(String filename, String zipFileName) throws Exception { ShapefileReader rdr = new ShapefileReader(); DriverProperties dp = new DriverProperties(); dp.set(ShapefileReader.FILE_PROPERTY_KEY, filename); if (zipFileName != null) dp.set(ShapefileReader.COMPRESSED_FILE_PROPERTY_KEY, zipFileName); return rdr.read(dp); } public static FeatureCollection loadFMEGML(String filename) throws Exception { FMEGMLReader rdr = new FMEGMLReader(); DriverProperties dp = new DriverProperties(); dp.set("File", filename); return rdr.read(dp); } public static FeatureCollection loadWKT(String filename) throws Exception { WKTReader rdr = new WKTReader(); DriverProperties dp = new DriverProperties(); dp.set("File", filename); FeatureCollection fc = rdr.read(dp); return fc; } public static void save(FeatureCollection fc, String filename) throws Exception { String extension = getExtension(filename); if (extension.equalsIgnoreCase("SHP")) { saveShapefile(fc, filename); return; } else if (extension.equalsIgnoreCase("JML")) { saveJMLFile(fc, filename); return; } throw new Exception("Unknown file type: " + extension); } public static void saveShapefile(FeatureCollection fc, String filename) throws Exception { ShapefileWriter writer = new ShapefileWriter(); DriverProperties dp = new DriverProperties(); dp.set("File", filename); writer.write(fc, dp); } public static void saveJMLFile(FeatureCollection fc, String filename) throws Exception { JMLWriter writer = new JMLWriter(); DriverProperties dp = new DriverProperties(); dp.set("File", filename); writer.write(fc, dp); } public static void print(FeatureCollection fc) { List featList = fc.getFeatures(); for (Iterator i = featList.iterator(); i.hasNext(); ) { Feature f = (Feature) i.next(); System.out.println(f.getGeometry()); } } }