/* * GeometryTable.java * * Created on January 24, 2001, 12:07 PM */ package uk.ac.leeds.ccg.sfsql; import java.sql.*; import uk.ac.leeds.ccg.simplefeature.*; /** * * @author jamesm * @version */ public class GeometryTable extends java.lang.Object { private final static boolean DEBUG=true; Connection con; GeometryMetadata gm; /** Creates new GeometryTable */ public GeometryTable(Connection con,GeometryMetadata gm) { if(DEBUG)System.out.println("---->uk.ac.leeds.ccg.sfsql.GeometryTable constructed. Will identify itself as GTa->"); this.con = con; this.gm = gm; } public Geometry getGeometry(int gid) throws SQLException { if(gm.isBinary){return getBinaryGeometry(gid);} //getTextGeometry(gid); return null; } private void getTextGeometry(int gid) throws SQLException { Statement stmt = con.createStatement(); if(DEBUG)System.out.println("GTa->Fetching "+gid); String query = "select * from "+gm.getGeometryTableName()+" where GID = "+gid; ResultSet res = stmt.executeQuery(query); if(DEBUG)System.out.println("GTa->Size = "+res.getFetchSize()); while(res.next()){ // WellKnownText test = new WellKnownText(res); } } private Geometry getBinaryGeometry(int gid) throws SQLException { Statement stmt = con.createStatement(); //if(DEBUG)System.out.println("GTa->Fetching "+gid); String query = "select * from "+gm.getGeometryTableName()+" where GID = "+gid; ResultSet res = stmt.executeQuery(query); if(DEBUG)System.out.println("GTa->Size = "+res.getFetchSize()); while(res.next()){ byte[] bytes = res.getBytes("WKB_GEOMETRY"); Geometry bin = new WellKnownBinary(bytes).getGeometry(); return bin; } return null; } }