/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2014, 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.data.oracle;
import org.geotools.jdbc.JDBCDelegatingTestSetup;
public class OracleCurvesTestSetup extends JDBCDelegatingTestSetup {
protected OracleCurvesTestSetup() {
super(new OracleTestSetup());
}
@Override
protected void setUpData() throws Exception {
dropCurveTable();
createCurvesTable();
}
private void createCurvesTable() throws Exception {
String sql = "CREATE TABLE CURVES ("
+ "id INT, name VARCHAR(64), geometry MDSYS.SDO_GEOMETRY, PRIMARY KEY(id))";
run(sql);
sql = "INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID ) "
+ "VALUES ('curves','geometry',MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('X',-180,180,0.5), "
+ "MDSYS.SDO_DIM_ELEMENT('Y',-90,90,0.5)), 32632)";
run(sql);
sql = "CREATE INDEX CURVES_GEOMETRY_IDX ON CURVES(GEOMETRY) INDEXTYPE IS MDSYS.SPATIAL_INDEX" //
+ " PARAMETERS ('SDO_INDX_DIMS=2')";
run(sql);
// adding data
sql = "INSERT INTO CURVES VALUES (0, 'Arc segment', "
+ "sdo_geometry (2002, 32632, null, sdo_elem_info_array (1,2,2), sdo_ordinate_array (10,15, 15,20, 20,15)))";
run(sql);
sql = "INSERT INTO CURVES VALUES (1, 'Arc string', "
+ "sdo_geometry (2002, 32632, null, sdo_elem_info_array (1,2,2), sdo_ordinate_array (10,35, 15,40, 20,35, 25,30, 30,35)))";
run(sql);
sql = "INSERT INTO CURVES VALUES (2, 'Closed arc string', "
+ "sdo_geometry (2002, 32632, null, sdo_elem_info_array (1,2,2), sdo_ordinate_array (15,65, 10,68, 15,70, 20,68, 15,65)))";
run(sql);
sql = "INSERT INTO CURVES VALUES (3, 'Compound line string', "
+ "sdo_geometry (2002, 32632, null, sdo_elem_info_array (1,4,3, 1,2,1, 3,2,2, 7,2,1), sdo_ordinate_array (10,45, 20,45, 23,48, 20,51, 10,51)))";
run(sql);
sql = "INSERT INTO CURVES VALUES (4, 'Closed mixed line', "
+ "sdo_geometry (2002, 32632, null, sdo_elem_info_array (1,4,2, 1,2,1, 7,2,2), sdo_ordinate_array (10,78, 10,75, 20,75, 20,78, 15,80, 10,78)))";
run(sql);
sql = "INSERT INTO CURVES VALUES (5, 'Circle', "
+ "sdo_geometry (2003, 32632, null, sdo_elem_info_array (1,1003,4), sdo_ordinate_array (15,145, 10,150, 20,150)))";
run(sql);
sql = "INSERT INTO CURVES VALUES (6, 'Compound polygon', "
+ "sdo_geometry (2003, 32632, null, sdo_elem_info_array(1,1005,2, 1,2,1, 5,2,2), sdo_ordinate_array(6,10, 10,1, 14,10, 10,14, 6,10)))";
run(sql);
sql = "INSERT INTO CURVES VALUES (7, 'Compound polygon with hole', sdo_geometry(2003, 32632, null,"
+ " sdo_elem_info_array(1,1005,2, 1,2,1, 13,2,2, 19,2003,4),"
+ " sdo_ordinate_array(20,30, 11,30, 7,22, 7,15, 11,10, 21,10, 27,30, 25,27, 20,30, 10,17, 15,22, 20,17)))";
run(sql);
sql = "INSERT INTO CURVES VALUES (8, 'Multipolygon with curves', sdo_geometry(2007, 32632, null,"
+ " sdo_elem_info_array(1,1005,2, 1,2,1, 5,2,2, 11,2005,2, 11,2,1, 15,2,2, 21,1005,2, 21,2,1, 25,2,2),"
+ " sdo_ordinate_array(6,10, 10,1, 14,10, 10,14, 6,10, 13,10, 10,2, 7,10, 10,13, 13,10, 106,110, 110,101, 114,110, 110,114,106,110)))";
run(sql);
sql = "INSERT INTO CURVES VALUES (9, 'Compound polygon 2', "
+ "sdo_geometry (2003, 32632, null, sdo_elem_info_array(1,1003,2), sdo_ordinate_array(15, 145, 20, 150, 15, 155, 10, 150, 15, 145)))";
run(sql);
}
private void dropCurveTable() throws Exception {
runSafe("DROP TABLE CURVES PURGE");
run("DELETE FROM USER_SDO_GEOM_METADATA WHERE TABLE_NAME = 'CURVES'");
}
}