mil.nga.geopackage.schema.columns.DataColumnsDao Java Examples
The following examples show how to use
mil.nga.geopackage.schema.columns.DataColumnsDao.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: FeatureInfoBuilder.java From geopackage-android-map with MIT License | 6 votes |
/** * Get the column name by checking for a DataColumns name, otherwise returns the provided column name * * @param dataColumnsDao data columns dao * @param featureRow feature row * @param columnName column name * @return column name */ private String getColumnName(DataColumnsDao dataColumnsDao, FeatureRow featureRow, String columnName) { String newColumnName = columnName; if (dataColumnsDao != null) { try { DataColumns dataColumn = dataColumnsDao.getDataColumn(featureRow.getTable().getTableName(), columnName); if (dataColumn != null) { newColumnName = dataColumn.getName(); } } catch (SQLException e) { Log.e(FeatureOverlayQuery.class.getSimpleName(), "Failed to search for Data Column name for column: " + columnName + ", Feature Table: " + featureRow.getTable().getTableName(), e); } } return newColumnName; }
Example #2
Source File: GeoPackageExtensions.java From geopackage-core-java with MIT License | 6 votes |
/** * Delete the Schema extensions for the table * * @param geoPackage * GeoPackage * @param table * table name * @since 3.2.0 */ public static void deleteSchema(GeoPackageCore geoPackage, String table) { DataColumnsDao dataColumnsDao = geoPackage.getDataColumnsDao(); try { if (dataColumnsDao.isTableExists()) { dataColumnsDao.deleteByTableName(table); } } catch (SQLException e) { throw new GeoPackageException( "Failed to delete Schema extension. GeoPackage: " + geoPackage.getName() + ", Table: " + table, e); } }
Example #3
Source File: GeoPackageCoreImpl.java From geopackage-core-java with MIT License | 6 votes |
/** * {@inheritDoc} */ @Override public boolean createDataColumnsTable() { verifyWritable(); boolean created = false; DataColumnsDao dao = getDataColumnsDao(); try { if (!dao.isTableExists()) { created = tableCreator.createDataColumns() > 0; } } catch (SQLException e) { throw new GeoPackageException( "Failed to check if " + DataColumns.class.getSimpleName() + " table exists and create it", e); } return created; }
Example #4
Source File: FeatureInfoBuilder.java From geopackage-android-map with MIT License | 5 votes |
/** * Get a Data Columns DAO * * @return data columns dao */ private DataColumnsDao getDataColumnsDao() { DataColumnsDao dataColumnsDao = null; try { dataColumnsDao = DaoManager.createDao(featureDao.getDb().getConnectionSource(), DataColumns.class); if (!dataColumnsDao.isTableExists()) { dataColumnsDao = null; } } catch (SQLException e) { dataColumnsDao = null; Log.e(FeatureOverlayQuery.class.getSimpleName(), "Failed to get a Data Columns DAO", e); } return dataColumnsDao; }
Example #5
Source File: TestUtils.java From geopackage-android-map with MIT License | 5 votes |
/** * Create the feature table with data columns entry * * @param geoPackage * @param contents * @param geometryColumn * @param geometryType * @return * @throws SQLException */ public static FeatureTable createFeatureTable(GeoPackage geoPackage, Contents contents, String geometryColumn, GeometryType geometryType) throws SQLException { FeatureTable table = buildFeatureTable(contents.getTableName(), geometryColumn, geometryType); geoPackage.createFeatureTable(table); double random = Math.random(); DataColumnsDao dataColumnsDao = geoPackage.getDataColumnsDao(); DataColumns dataColumns = new DataColumns(); dataColumns.setContents(contents); dataColumns.setColumnName(TEST_INTEGER_COLUMN); dataColumns.setName(contents.getTableName()); dataColumns.setTitle("TEST_TITLE"); dataColumns.setDescription("TEST_DESCRIPTION"); dataColumns.setMimeType("TEST_MIME_TYPE"); if (random < (1.0 / 3.0)) { dataColumns.setConstraintName(SAMPLE_RANGE_CONSTRAINT); } else if (random < (2.0 / 3.0)) { dataColumns.setConstraintName(SAMPLE_ENUM_CONSTRAINT); } else { dataColumns.setConstraintName(SAMPLE_GLOB_CONSTRAINT); } dataColumnsDao.create(dataColumns); return table; }
Example #6
Source File: TestUtils.java From geopackage-android with MIT License | 5 votes |
/** * Create the feature table with data columns entry * * @param geoPackage * @param contents * @param geometryColumn * @param geometryType * @return * @throws SQLException */ public static FeatureTable createFeatureTable(GeoPackage geoPackage, Contents contents, String geometryColumn, GeometryType geometryType) throws SQLException { FeatureTable table = buildFeatureTable(contents.getTableName(), geometryColumn, geometryType); geoPackage.createFeatureTable(table); double random = Math.random(); DataColumnsDao dataColumnsDao = geoPackage.getDataColumnsDao(); DataColumns dataColumns = new DataColumns(); dataColumns.setContents(contents); dataColumns.setColumnName(TEST_INTEGER_COLUMN); dataColumns.setName(contents.getTableName()); dataColumns.setTitle("TEST_TITLE"); dataColumns.setDescription("TEST_DESCRIPTION"); dataColumns.setMimeType("TEST_MIME_TYPE"); if (random < (1.0 / 3.0)) { dataColumns.setConstraintName(SAMPLE_RANGE_CONSTRAINT); } else if (random < (2.0 / 3.0)) { dataColumns.setConstraintName(SAMPLE_ENUM_CONSTRAINT); } else { dataColumns.setConstraintName(SAMPLE_GLOB_CONSTRAINT); } dataColumnsDao.create(dataColumns); return table; }
Example #7
Source File: TestUtils.java From geopackage-java with MIT License | 5 votes |
/** * Create the feature table with data columns entry * * @param geoPackage * @param contents * @param geometryColumn * @param geometryType * @return feature table * @throws SQLException */ public static FeatureTable createFeatureTable(GeoPackage geoPackage, Contents contents, String geometryColumn, GeometryType geometryType) throws SQLException { FeatureTable table = buildFeatureTable(contents.getTableName(), geometryColumn, geometryType); geoPackage.createFeatureTable(table); double random = Math.random(); DataColumnsDao dataColumnsDao = geoPackage.getDataColumnsDao(); DataColumns dataColumns = new DataColumns(); dataColumns.setContents(contents); dataColumns.setColumnName(TEST_INTEGER_COLUMN); dataColumns.setName(contents.getTableName()); dataColumns.setTitle("TEST_TITLE"); dataColumns.setDescription("TEST_DESCRIPTION"); dataColumns.setMimeType("TEST_MIME_TYPE"); if (random < (1.0 / 3.0)) { dataColumns.setConstraintName(SAMPLE_RANGE_CONSTRAINT); } else if (random < (2.0 / 3.0)) { dataColumns.setConstraintName(SAMPLE_ENUM_CONSTRAINT); } else { dataColumns.setConstraintName(SAMPLE_GLOB_CONSTRAINT); } dataColumnsDao.create(dataColumns); return table; }
Example #8
Source File: DataColumnConstraints.java From geopackage-core-java with MIT License | 5 votes |
public List<DataColumns> getColumns(DataColumnsDao dao) throws SQLException { List<DataColumns> columns = null; if (constraintName != null) { columns = dao.queryByConstraintName(constraintName); } return columns; }
Example #9
Source File: DataColumnConstraintsDao.java From geopackage-core-java with MIT License | 5 votes |
/** * Get or create a Data Columns DAO * * @return data columns dao * @throws SQLException */ private DataColumnsDao getDataColumnsDao() throws SQLException { if (dataColumnsDao == null) { dataColumnsDao = DaoManager.createDao(connectionSource, DataColumns.class); } return dataColumnsDao; }
Example #10
Source File: DataColumnConstraintsUtils.java From geopackage-java with MIT License | 4 votes |
/** * Test delete * * @param geoPackage * @throws SQLException */ public static void testDelete(GeoPackage geoPackage) throws SQLException { DataColumnConstraintsDao dao = geoPackage.getDataColumnConstraintsDao(); DataColumnsDao dataColumnsDao = geoPackage.getDataColumnsDao(); if (dao.isTableExists()) { List<DataColumnConstraints> results = dao.queryForAll(); if (!results.isEmpty()) { // Choose random data column constraints int random = (int) (Math.random() * results.size()); DataColumnConstraints dataColumnConstraints = results .get(random); int remainingConstraints = dao.queryByConstraintName( dataColumnConstraints.getConstraintName()).size(); int dataColumns = dataColumnsDao.queryByConstraintName( dataColumnConstraints.getConstraintName()).size(); // Delete the data column constraints dao.deleteCascade(dataColumnConstraints); // Verify deleted DataColumnConstraints queryDataColumns = dao.queryByUnique( dataColumnConstraints.getConstraintName(), dataColumnConstraints.getConstraintType(), dataColumnConstraints.getValue()); TestCase.assertNull(queryDataColumns); // Verify cascade delete int afterRemainingConstraints = dao.queryByConstraintName( dataColumnConstraints.getConstraintName()).size(); int afterDataColumns = dataColumnsDao.queryByConstraintName( dataColumnConstraints.getConstraintName()).size(); TestCase.assertEquals(remainingConstraints - 1, afterRemainingConstraints); if (remainingConstraints == 1) { TestCase.assertEquals(0, afterDataColumns); } else { TestCase.assertEquals(dataColumns, afterDataColumns); } // Prepared deleted results = dao.queryForAll(); if (!results.isEmpty()) { // Choose random data column constraints random = (int) (Math.random() * results.size()); dataColumnConstraints = results.get(random); // Find which data column constraints to delete QueryBuilder<DataColumnConstraints, Void> qb = dao .queryBuilder(); qb.where().eq(DataColumnConstraints.COLUMN_CONSTRAINT_NAME, dataColumnConstraints.getConstraintName()); PreparedQuery<DataColumnConstraints> query = qb.prepare(); List<DataColumnConstraints> queryResults = dao.query(query); int count = queryResults.size(); // Delete DeleteBuilder<DataColumnConstraints, Void> db = dao .deleteBuilder(); db.where().eq(DataColumnConstraints.COLUMN_CONSTRAINT_NAME, dataColumnConstraints.getConstraintName()); PreparedDelete<DataColumnConstraints> deleteQuery = db .prepare(); int deleted = dao.delete(deleteQuery); TestCase.assertEquals(count, deleted); } } } }
Example #11
Source File: FeatureInfoBuilder.java From geopackage-android-map with MIT License | 4 votes |
/** * Build a feature results information message * * @param results feature index results * @param tolerance distance tolerance * @param clickLocation map click location * @param projection desired geometry projection * @return feature table data or null if not results */ public FeatureTableData buildTableDataAndClose(FeatureIndexResults results, double tolerance, LatLng clickLocation, Projection projection) { FeatureTableData tableData = null; // Fine filter results so that the click location is within the tolerance of each feature row result FeatureIndexResults filteredResults = fineFilterResults(results, tolerance, clickLocation); long featureCount = filteredResults.count(); if (featureCount > 0) { int maxFeatureInfo = 0; if (geometryType == GeometryType.POINT) { maxFeatureInfo = maxPointDetailedInfo; } else { maxFeatureInfo = maxFeatureDetailedInfo; } if (featureCount <= maxFeatureInfo) { DataColumnsDao dataColumnsDao = getDataColumnsDao(); List<FeatureRowData> rows = new ArrayList<>(); for (FeatureRow featureRow : filteredResults) { Map<String, Object> values = new HashMap<>(); String geometryColumnName = null; int geometryColumn = featureRow.getGeometryColumnIndex(); for (int i = 0; i < featureRow.columnCount(); i++) { Object value = featureRow.getValue(i); String columnName = featureRow.getColumnName(i); columnName = getColumnName(dataColumnsDao, featureRow, columnName); if (i == geometryColumn) { geometryColumnName = columnName; if (projection != null && value != null) { GeoPackageGeometryData geomData = (GeoPackageGeometryData) value; projectGeometry(geomData, projection); } } if (value != null) { values.put(columnName, value); } } FeatureRowData featureRowData = new FeatureRowData(values, geometryColumnName); rows.add(featureRowData); } tableData = new FeatureTableData(featureDao.getTableName(), featureCount, rows); } else { tableData = new FeatureTableData(featureDao.getTableName(), featureCount); } } results.close(); return tableData; }
Example #12
Source File: DataColumnsUtils.java From geopackage-java with MIT License | 4 votes |
/** * Test delete * * @param geoPackage * @throws SQLException */ public static void testDelete(GeoPackage geoPackage) throws SQLException { DataColumnsDao dao = geoPackage.getDataColumnsDao(); if (dao.isTableExists()) { List<DataColumns> results = dao.queryForAll(); if (!results.isEmpty()) { // Choose random data columns int random = (int) (Math.random() * results.size()); DataColumns dataColumns = results.get(random); // Delete the data columns dao.delete(dataColumns); // Verify deleted DataColumns queryDataColumns = dao.queryForId(dataColumns .getId()); TestCase.assertNull(queryDataColumns); // Prepared deleted results = dao.queryForAll(); if (!results.isEmpty()) { // Choose random data columns random = (int) (Math.random() * results.size()); dataColumns = results.get(random); // Find which data columns to delete QueryBuilder<DataColumns, TableColumnKey> qb = dao .queryBuilder(); qb.where().eq(DataColumns.COLUMN_TABLE_NAME, dataColumns.getTableName()); PreparedQuery<DataColumns> query = qb.prepare(); List<DataColumns> queryResults = dao.query(query); int count = queryResults.size(); // Delete DeleteBuilder<DataColumns, TableColumnKey> db = dao .deleteBuilder(); db.where().eq(DataColumns.COLUMN_TABLE_NAME, dataColumns.getTableName()); PreparedDelete<DataColumns> deleteQuery = db.prepare(); int deleted = dao.delete(deleteQuery); TestCase.assertEquals(count, deleted); } } } }
Example #13
Source File: DataColumnConstraintsDao.java From geopackage-core-java with MIT License | 4 votes |
/** * Delete the Data Columns Constraints, cascading * * @param constraints * data column constraints * @return deleted count * @throws SQLException * upon failure */ public int deleteCascade(DataColumnConstraints constraints) throws SQLException { int count = 0; if (constraints != null) { // Check if the last remaining constraint with the constraint name // is being deleted List<DataColumnConstraints> remainingConstraints = queryByConstraintName(constraints .getConstraintName()); if (remainingConstraints.size() == 1) { DataColumnConstraints remainingConstraint = remainingConstraints .get(0); // Compare the name, type, and value if (remainingConstraint.getConstraintName().equals( constraints.getConstraintName()) && remainingConstraint.getConstraintType().equals( constraints.getConstraintType()) && (remainingConstraint.getValue() == null ? constraints .getValue() == null : remainingConstraint .getValue().equals(constraints.getValue()))) { // Delete Data Columns DataColumnsDao dao = getDataColumnsDao(); List<DataColumns> dataColumnsCollection = dao .queryByConstraintName(constraints .getConstraintName()); if (!dataColumnsCollection.isEmpty()) { dao.delete(dataColumnsCollection); } } } // Delete count = delete(constraints); } return count; }
Example #14
Source File: GeoPackageCoreImpl.java From geopackage-core-java with MIT License | 4 votes |
/** * {@inheritDoc} */ @Override public DataColumnsDao getDataColumnsDao() { return createDao(DataColumns.class); }
Example #15
Source File: DataColumnConstraintsUtils.java From geopackage-android with MIT License | 4 votes |
/** * Test delete * * @param geoPackage * @throws SQLException */ public static void testDelete(GeoPackage geoPackage) throws SQLException { DataColumnConstraintsDao dao = geoPackage.getDataColumnConstraintsDao(); DataColumnsDao dataColumnsDao = geoPackage.getDataColumnsDao(); if (dao.isTableExists()) { List<DataColumnConstraints> results = dao.queryForAll(); if (!results.isEmpty()) { // Choose random data column constraints int random = (int) (Math.random() * results.size()); DataColumnConstraints dataColumnConstraints = results .get(random); int remainingConstraints = dao.queryByConstraintName( dataColumnConstraints.getConstraintName()).size(); int dataColumns = dataColumnsDao.queryByConstraintName( dataColumnConstraints.getConstraintName()).size(); // Delete the data column constraints dao.deleteCascade(dataColumnConstraints); // Verify deleted DataColumnConstraints queryDataColumns = dao.queryByUnique( dataColumnConstraints.getConstraintName(), dataColumnConstraints.getConstraintType(), dataColumnConstraints.getValue()); TestCase.assertNull(queryDataColumns); // Verify cascade delete int afterRemainingConstraints = dao.queryByConstraintName( dataColumnConstraints.getConstraintName()).size(); int afterDataColumns = dataColumnsDao.queryByConstraintName( dataColumnConstraints.getConstraintName()).size(); TestCase.assertEquals(remainingConstraints - 1, afterRemainingConstraints); if (remainingConstraints == 1) { TestCase.assertEquals(0, afterDataColumns); } else { TestCase.assertEquals(dataColumns, afterDataColumns); } // Prepared deleted results = dao.queryForAll(); if (!results.isEmpty()) { // Choose random data column constraints random = (int) (Math.random() * results.size()); dataColumnConstraints = results.get(random); // Find which data column constraints to delete QueryBuilder<DataColumnConstraints, Void> qb = dao .queryBuilder(); qb.where().eq(DataColumnConstraints.COLUMN_CONSTRAINT_NAME, dataColumnConstraints.getConstraintName()); PreparedQuery<DataColumnConstraints> query = qb.prepare(); List<DataColumnConstraints> queryResults = dao.query(query); int count = queryResults.size(); // Delete DeleteBuilder<DataColumnConstraints, Void> db = dao .deleteBuilder(); db.where().eq(DataColumnConstraints.COLUMN_CONSTRAINT_NAME, dataColumnConstraints.getConstraintName()); PreparedDelete<DataColumnConstraints> deleteQuery = db .prepare(); int deleted = dao.delete(deleteQuery); TestCase.assertEquals(count, deleted); } } } }
Example #16
Source File: DataColumnsUtils.java From geopackage-android with MIT License | 4 votes |
/** * Test delete * * @param geoPackage * @throws SQLException */ public static void testDelete(GeoPackage geoPackage) throws SQLException { DataColumnsDao dao = geoPackage.getDataColumnsDao(); if (dao.isTableExists()) { List<DataColumns> results = dao.queryForAll(); if (!results.isEmpty()) { // Choose random data columns int random = (int) (Math.random() * results.size()); DataColumns dataColumns = results.get(random); // Delete the data columns dao.delete(dataColumns); // Verify deleted DataColumns queryDataColumns = dao.queryForId(dataColumns .getId()); TestCase.assertNull(queryDataColumns); // Prepared deleted results = dao.queryForAll(); if (!results.isEmpty()) { // Choose random data columns random = (int) (Math.random() * results.size()); dataColumns = results.get(random); // Find which data columns to delete QueryBuilder<DataColumns, TableColumnKey> qb = dao .queryBuilder(); qb.where().eq(DataColumns.COLUMN_TABLE_NAME, dataColumns.getTableName()); PreparedQuery<DataColumns> query = qb.prepare(); List<DataColumns> queryResults = dao.query(query); int count = queryResults.size(); // Delete DeleteBuilder<DataColumns, TableColumnKey> db = dao .deleteBuilder(); db.where().eq(DataColumns.COLUMN_TABLE_NAME, dataColumns.getTableName()); PreparedDelete<DataColumns> deleteQuery = db.prepare(); int deleted = dao.delete(deleteQuery); TestCase.assertEquals(count, deleted); } } } }
Example #17
Source File: GeoPackageCore.java From geopackage-core-java with MIT License | 2 votes |
/** * Get a Data Columns DAO * * @return Data Columns DAO */ public DataColumnsDao getDataColumnsDao();