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

org.jgrasstools.gears.io.geopaparazzi.geopap4.DaoBookmarks Maven / Gradle / Ivy

The newest version!
/*
 * This file is part of JGrasstools (http://www.jgrasstools.org)
 * (C) HydroloGIS - www.hydrologis.com
 *
 * JGrasstools is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program 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 General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see .
 */
package org.jgrasstools.gears.io.geopaparazzi.geopap4;


import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;


/**
 * @author Andrea Antonello (www.hydrologis.com)
 */
@SuppressWarnings("nls")
public class DaoBookmarks {

    private static final String COLUMN_ID = "_id";
    private static final String COLUMN_LON = "lon";
    private static final String COLUMN_LAT = "lat";
    private static final String COLUMN_TEXT = "text";
    private static final String COLUMN_ZOOM = "zoom";
    private static final String COLUMN_NORTHBOUND = "bnorth";
    private static final String COLUMN_SOUTHBOUND = "bsouth";
    private static final String COLUMN_WESTBOUND = "bwest";
    private static final String COLUMN_EASTBOUND = "beast";

    /**
     * Bookmarks table name.
     */
    public static final String TABLE_BOOKMARKS = "bookmarks";

    /**
     * Create bookmarks tables.
     *
     * @throws IOException  if something goes wrong.
     */
    public static void createTables(Connection connection) throws IOException, SQLException {
        StringBuilder sB = new StringBuilder();
        sB.append("CREATE TABLE ");
        sB.append(TABLE_BOOKMARKS);
        sB.append(" (");
        sB.append(COLUMN_ID);
        sB.append(" INTEGER PRIMARY KEY, ");
        sB.append(COLUMN_LON).append(" REAL NOT NULL, ");
        sB.append(COLUMN_LAT).append(" REAL NOT NULL,");
        sB.append(COLUMN_ZOOM).append(" REAL NOT NULL,");
        sB.append(COLUMN_NORTHBOUND).append(" REAL NOT NULL,");
        sB.append(COLUMN_SOUTHBOUND).append(" REAL NOT NULL,");
        sB.append(COLUMN_WESTBOUND).append(" REAL NOT NULL,");
        sB.append(COLUMN_EASTBOUND).append(" REAL NOT NULL,");
        sB.append(COLUMN_TEXT).append(" TEXT NOT NULL ");
        sB.append(");");
        String CREATE_TABLE_BOOKMARKS = sB.toString();

        sB = new StringBuilder();
        sB.append("CREATE INDEX bookmarks_x_by_y_idx ON ");
        sB.append(TABLE_BOOKMARKS);
        sB.append(" ( ");
        sB.append(COLUMN_LON);
        sB.append(", ");
        sB.append(COLUMN_LAT);
        sB.append(" );");
        String CREATE_INDEX_BOOKMARKS_X_BY_Y = sB.toString();

        try (Statement statement = connection.createStatement()) {
            statement.setQueryTimeout(30); // set timeout to 30 sec.

            statement.executeUpdate(CREATE_TABLE_BOOKMARKS);
            statement.executeUpdate(CREATE_INDEX_BOOKMARKS_X_BY_Y);
        } catch (Exception e) {
            throw new IOException(e.getLocalizedMessage());
        }
    }

//    /**
//     * Add a bookmark.
//     *
//     * @param lon lon
//     * @param lat lat
//     * @param text a text
//     * @param zoom zoom level
//     * @param north north
//     * @param south south
//     * @param west west
//     * @param east east
//     * @throws IOException if something goes wrong.
//     */
//    public static void addBookmark( double lon, double lat, String text, double zoom, double north, double south, double west,
//            double east ) throws IOException {
//        SQLiteDatabase sqliteDatabase = GeopaparazziApplication.getInstance().getDatabase();
//        sqliteDatabase.beginTransaction();
//        try {
//            ContentValues values = new ContentValues();
//            values.put(COLUMN_LON, lon);
//            values.put(COLUMN_LAT, lat);
//            values.put(COLUMN_TEXT, text);
//            values.put(COLUMN_ZOOM, zoom);
//            values.put(COLUMN_NORTHBOUND, north);
//            values.put(COLUMN_SOUTHBOUND, south);
//            values.put(COLUMN_WESTBOUND, west);
//            values.put(COLUMN_EASTBOUND, east);
//            sqliteDatabase.insertOrThrow(TABLE_BOOKMARKS, null, values);
//
//            sqliteDatabase.setTransactionSuccessful();
//        } catch (Exception e) {
//            DaoLog.error("DAOBOOKMARKS", e.getLocalizedMessage(), e);
//            throw new IOException(e.getLocalizedMessage());
//        } finally {
//            sqliteDatabase.endTransaction();
//        }
//    }





}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy