package org.geotools.jdbc; import java.sql.SQLException; public abstract class JDBCViewTestSetup extends JDBCDelegatingTestSetup { protected JDBCViewTestSetup(JDBCTestSetup delegate) { super(delegate); } @Override protected void setUpData() throws Exception { try { dropLakesView(); } catch (SQLException e) { } try { dropLakesViewPk(); } catch (SQLException e) { } try { dropLakesTable(); } catch (SQLException e) { } //create all the data createLakesTable(); createLakesView(); createLakesViewPk(); } /** * Creates a table with the following schema: * <p> * lakes(fid: Integer (pk), id:Integer; geom:Polygon; name:String ) * </p> * <p> * The table should be populated with the following data: * <pre> * 0 | 0 | POLYGON((12 6, 14 8, 16 6, 16 4, 14 4, 12 6));srid=4326 | "muddy" * </pre> * </p> */ protected abstract void createLakesTable() throws Exception; /** * Creates a "lakesview" view that simply returns the lake table fully. * The table should be registered in the geometry metadata tables */ protected abstract void createLakesView() throws Exception; /** * If the database supports views with primary keys, creates a "lakesviewpk" view * that simply returns the lake table fully and makes sure the original pk * is registered as a pk in the view as well. * The table should be registered in the geometry metadata tables. * If no primary key on views support is available, the method can be empty */ protected abstract void createLakesViewPk() throws Exception; /** * Drops the "lakes" table. */ protected abstract void dropLakesTable() throws Exception; /** * Drops the "lakesview" view. */ protected abstract void dropLakesView() throws Exception; /** * Drops the "lakesviewpk" view */ protected abstract void dropLakesViewPk() throws Exception; }