package org.jgrasstools.gears.io.dxfdwg.libs.dxf; ///* // * Library name : dxf // * (C) 2006 Micha�l Michaud // * // * This program is free software; you can redistribute it and/or // * modify it under the terms of the GNU General Public License // * as published by the Free Software Foundation; either version 2 // * of the License, or (at your option) any later version. // * // * This program is distributed in the hope that it will be useful, // * but WITHOUT ANY WARRANTY; without even the implied warranty of // * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // * GNU General Public License for more details. // * // * You should have received a copy of the GNU General Public License // * along with this program; if not, write to the Free Software // * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // * // * For more information, contact: // * // * michael.michaud@free.fr // * // */ // //package fr.michaelm.jump.drivers.dxf; // //import com.vividsolutions.jts.geom.*; // //import com.vividsolutions.jump.feature.*; //import com.vividsolutions.jump.io.JUMPWriter; //import com.vividsolutions.jump.io.DriverProperties; //import com.vividsolutions.jump.io.IllegalParametersException; //import com.vividsolutions.jump.io.CompressedFile; //import com.vividsolutions.jts.algorithm.CGAlgorithms; //import com.vividsolutions.jts.algorithm.RobustCGAlgorithms; // //import java.io.*; //import java.net.URL; //import java.util.Iterator; // // ///** // * DXF writer // * @author Micha�l Michaud // * @version 0.5.0 // */ //// History //// 2006-11-12 : Much clean-up made on 2006-11-12 for version 0.5 //public class DxfWriter implements JUMPWriter { // protected static CGAlgorithms cga = new RobustCGAlgorithms(); // DxfFile dxfFile = null; // // /** Creates new DxfWriter */ // public DxfWriter() {} // // /** // * Main method - write the featurecollection to a DXF file. // * // * @param featureCollection collection to write // * @param dp 'OutputFile' or 'DefaultValue' to specify where to write. // */ // public void write(FeatureCollection featureCollection, DriverProperties dp) // throws IllegalParametersException, Exception { // String dxfFileName; // String fname; // int loc; // dxfFileName = dp.getProperty("File"); // // if (dxfFileName == null) { // dxfFileName = dp.getProperty("DefaultValue"); // } // if (dxfFileName == null) { // throw new IllegalParametersException("no File property specified"); // } // // String[] layerNameProp = (String[])dp.get("LAYER_NAME"); // String[] layerNames = layerNameProp==null?new String[]{}:layerNameProp; // // // Check if header has to be written // // Warning : using getProperty instead of get return null // // because HEADER is not a String // // This option has been moved on 2006-11-12 after the header-bug has // // fixed (comments will be removed in version 0.6) // /*boolean header = true; // if (dp.get("HEADER") != null) { // header = ((Boolean)dp.get("HEADER")).booleanValue(); // }*/ // // // Check if the writer has to create layers with "_" suffix for layers with holes // // Warning : using getProperty instead of get return null // // because SUFFIX is not a String // boolean suffix = true; // if (dp.get("SUFFIX") != null) { // suffix = ((Boolean)dp.get("SUFFIX")).booleanValue(); // } // // loc = dxfFileName.lastIndexOf(File.separatorChar); // fname = dxfFileName.substring(loc + 1); // ie. "/data1/hills.dxf" -> "hills.dxf" // loc = fname.lastIndexOf("."); // if (loc == -1) { // throw new IllegalParametersException("Filename must end in '.dxf'"); // } // // URL url = new URL("file", "localhost", dxfFileName); // DxfFile dxfFile = new DxfFile(); // FileWriter fw = new FileWriter(dxfFileName); // DxfFile.write(featureCollection, layerNames, fw, 2, suffix); // fw.close(); // } // // /* // protected DxfFile getDxfFile(String dxfFileName, String compressedFname) // throws Exception { // java.io.InputStream in = CompressedFile.openFile(dxfFileName, // compressedFname); // DxfFile dxfFile = new DxfFile(in); // return dxfFile; // } // */ // //}