/* * GeoTools - The Open Source Java GIS Toolkit * http://geotools.org * * (C) 2002-2008, Open Source Geospatial Foundation (OSGeo) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library 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 * Lesser General Public License for more details. */ package org.geotools.geopkg; import org.geotools.jdbc.JDBCEmptyGeometryTestSetup; import org.geotools.jdbc.JDBCTestSetup; /** * * * @source $URL: http://svn.osgeo.org/geotools/trunk/modules/plugin/jdbc/jdbc-GeoPkg/src/test/java/org/geotools/data/GeoPkg/GeoPkgBooleanTestSetup.java $ */ public class GeoPkgEmptyGeometryTestSetup extends JDBCEmptyGeometryTestSetup { public GeoPkgEmptyGeometryTestSetup(JDBCTestSetup delegate) { super(delegate); } String[] types = {"POINT","LINESTRING","POLYGON","MULTIPOINT","MULTILINESTRING","MULTIPOLYGON"}; @Override protected void createEmptyGeometryTable() throws Exception { // create table schema for(String type:types) { run("CREATE TABLE \"empty_"+type.toLowerCase()+"\"(" // + "\"fid\" serial primary key, " // + "\"id\" integer, " // + "\"geom_"+type.toLowerCase()+"\" geometry, " + "\"name\" varchar)"); String sql = "INSERT INTO gpkg_contents (table_name, data_type, identifier, srs_id) VALUES " + "('empty_"+type.toLowerCase()+"', 'features', 'empty_"+type.toLowerCase()+"', 4326)"; run(sql); sql = "INSERT INTO gpkg_geometry_columns VALUES ('empty_"+type.toLowerCase()+"', 'geom_point', '"+type+"', 4326, 0, 0)"; run(sql); } /* + "CONSTRAINT enforce_geotype_geom_1 CHECK (geometrytype(geom_point) = 'POINT'::text OR geom_point IS NULL)," // + "CONSTRAINT enforce_geotype_geom_2 CHECK (geometrytype(geom_linestring) = 'LINESTRING'::text OR geom_linestring IS NULL)," // + "CONSTRAINT enforce_geotype_geom_3 CHECK (geometrytype(geom_polygon) = 'POLYGON'::text OR geom_polygon IS NULL)," // + "CONSTRAINT enforce_geotype_geom_4 CHECK (geometrytype(geom_multipoint) = 'MULTIPOINT'::text OR geom_multipoint IS NULL)," // + "CONSTRAINT enforce_geotype_geom_5 CHECK (geometrytype(geom_multilinestring) = 'MULTILINESTRING'::text OR geom_multilinestring IS NULL)," // + "CONSTRAINT enforce_geotype_geom_6 CHECK (geometrytype(geom_multipolygon) = 'MULTIPOLYGON'::text OR geom_multipolygon IS NULL)" // + ")"); */ } @Override protected void dropEmptyGeometryTable() throws Exception { for(String type:types) { ((GeoPkgTestSetup)delegate).removeTable("empty_"+type.toLowerCase()); } } }