/** * Get all the base table names * * @return base table names * @throws SQLException * upon failure */ public List<String> getBaseTables() throws SQLException { List<String> baseTables = new ArrayList<String>(); List<ExtendedRelation> extendedRelations = queryForAll(); for (ExtendedRelation extendedRelation : extendedRelations) { baseTables.add(extendedRelation.getBaseTableName()); } return baseTables; }
/** * Get all the related table names * * @return related table names * @throws SQLException * upon failure */ public List<String> getRelatedTables() throws SQLException { List<String> relatedTables = new ArrayList<String>(); List<ExtendedRelation> extendedRelations = queryForAll(); for (ExtendedRelation extendedRelation : extendedRelations) { relatedTables.add(extendedRelation.getRelatedTableName()); } return relatedTables; }
/** * Returns the relationships defined through this extension * * @return a list of ExtendedRelation objects */ public List<ExtendedRelation> getRelationships() { List<ExtendedRelation> result = null; try { if (extendedRelationsDao.isTableExists()) { result = extendedRelationsDao.queryForAll(); } else { result = new ArrayList<>(); } } catch (SQLException e) { throw new GeoPackageException("Failed to query for relationships " + "in " + EXTENSION_NAME, e); } return result; }
/** * Remove all trace of the extension */ public void removeExtension() { try { if (extendedRelationsDao.isTableExists()) { List<ExtendedRelation> extendedRelations = extendedRelationsDao .queryForAll(); for (ExtendedRelation extendedRelation : extendedRelations) { geoPackage.deleteTable(extendedRelation .getMappingTableName()); } geoPackage.dropTable(extendedRelationsDao.getTableName()); } if (extensionsDao.isTableExists()) { extensionsDao.deleteByExtension(EXTENSION_NAME); } } catch (SQLException e) { throw new GeoPackageException( "Failed to delete Related Tables extension and table. GeoPackage: " + geoPackage.getName(), e); } }