All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.h2gis.h2spatialext.CreateSpatialExtension Maven / Gradle / Ivy

package org.h2gis.h2spatialext;

import org.h2gis.drivers.DriverManager;
import org.h2gis.drivers.dbf.DBFRead;
import org.h2gis.drivers.dbf.DBFWrite;
import org.h2gis.drivers.shp.SHPRead;
import org.h2gis.drivers.shp.SHPWrite;
import org.h2gis.h2spatialext.function.spatial.aggregate.ST_Extent;
import org.h2gis.h2spatialext.function.spatial.table.ST_Explode;
import org.h2gis.h2spatialapi.Function;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * @author Nicolas Fortin
 */
public class CreateSpatialExtension {
    /**
     * @return instance of all built-ins functions
     */
    public static Function[] getBuiltInsFunctions() {
        return new Function[] {
                new ST_Extent(),
                new ST_Explode(),
                new DriverManager(),
                new SHPRead(),
                new SHPWrite(),
                new DBFRead(),
                new DBFWrite()};
    }

    /**
     * Init H2 DataBase with extended spatial functions
     * @param connection
     * @throws SQLException
     */
    public static void initSpatialExtension(Connection connection) throws SQLException {
        org.h2gis.h2spatial.CreateSpatialExtension.initSpatialExtension(connection);
        // Register project's functions
        addSpatialFunctions(connection);
    }

    /**
     * Register built-in functions
     * @param connection Active connection
     * @throws SQLException Error while creating statement
     */
    public static void addSpatialFunctions(Connection connection) throws SQLException {
        Statement st = connection.createStatement();
        for(Function function : getBuiltInsFunctions()) {
            try {
                org.h2gis.h2spatial.CreateSpatialExtension.registerFunction(st,function,"");
            } catch (SQLException ex) {
                // Catch to register other functions
                ex.printStackTrace(System.err);
            }
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy