1212import mil .nga .geopackage .extension .link .FeatureTileLink ;
1313import mil .nga .geopackage .extension .link .FeatureTileLinkDao ;
1414import mil .nga .geopackage .extension .link .FeatureTileTableCoreLinker ;
15+ import mil .nga .geopackage .extension .scale .TileScaling ;
16+ import mil .nga .geopackage .extension .scale .TileScalingDao ;
17+ import mil .nga .geopackage .extension .scale .TileTableScaling ;
1518
1619import com .j256 .ormlite .support .ConnectionSource ;
1720import com .j256 .ormlite .table .TableUtils ;
@@ -29,13 +32,16 @@ public class NGAExtensions {
2932 * Delete all NGA table extensions for the table within the GeoPackage
3033 *
3134 * @param geoPackage
35+ * GeoPackage
3236 * @param table
37+ * table name
3338 */
3439 public static void deleteTableExtensions (GeoPackageCore geoPackage ,
3540 String table ) {
3641
3742 deleteGeometryIndex (geoPackage , table );
3843 deleteFeatureTileLink (geoPackage , table );
44+ deleteTileScaling (geoPackage , table );
3945
4046 // Delete future extensions for the table here
4147 }
@@ -45,6 +51,7 @@ public static void deleteTableExtensions(GeoPackageCore geoPackage,
4551 * GeoPackage
4652 *
4753 * @param geoPackage
54+ * GeoPackage
4855 */
4956 public static void deleteExtensions (GeoPackageCore geoPackage ) {
5057 deleteExtensions (geoPackage , false );
@@ -55,6 +62,7 @@ public static void deleteExtensions(GeoPackageCore geoPackage) {
5562 * GeoPackage
5663 *
5764 * @param geoPackage
65+ * GeoPackage
5866 * @param ignoreErrors
5967 * true to ignore errors when deleting tables
6068 */
@@ -63,6 +71,7 @@ public static void deleteExtensions(GeoPackageCore geoPackage,
6371
6472 deleteGeometryIndexExtension (geoPackage , ignoreErrors );
6573 deleteFeatureTileLinkExtension (geoPackage , ignoreErrors );
74+ deleteTileScalingExtension (geoPackage , ignoreErrors );
6675
6776 // Delete future extension tables here
6877 }
@@ -71,7 +80,9 @@ public static void deleteExtensions(GeoPackageCore geoPackage,
7180 * Delete the Geometry Index extension for the table
7281 *
7382 * @param geoPackage
83+ * GeoPackage
7484 * @param table
85+ * table name
7586 * @since 1.1.5
7687 */
7788 public static void deleteGeometryIndex (GeoPackageCore geoPackage ,
@@ -100,7 +111,9 @@ public static void deleteGeometryIndex(GeoPackageCore geoPackage,
100111 * custom tables
101112 *
102113 * @param geoPackage
114+ * GeoPackage
103115 * @param ignoreErrors
116+ * true to ignore errors
104117 * @since 1.1.5
105118 */
106119 public static void deleteGeometryIndexExtension (GeoPackageCore geoPackage ,
@@ -122,8 +135,8 @@ public static void deleteGeometryIndexExtension(GeoPackageCore geoPackage,
122135 ignoreErrors );
123136 }
124137 if (extensionsDao .isTableExists ()) {
125- extensionsDao . deleteByExtension (
126- FeatureTableCoreIndex .EXTENSION_NAME );
138+ extensionsDao
139+ . deleteByExtension ( FeatureTableCoreIndex .EXTENSION_NAME );
127140 }
128141 } catch (SQLException e ) {
129142 throw new GeoPackageException (
@@ -137,7 +150,9 @@ public static void deleteGeometryIndexExtension(GeoPackageCore geoPackage,
137150 * Delete the Feature Tile Link extensions for the table
138151 *
139152 * @param geoPackage
153+ * GeoPackage
140154 * @param table
155+ * table name
141156 * @since 1.1.5
142157 */
143158 public static void deleteFeatureTileLink (GeoPackageCore geoPackage ,
@@ -161,7 +176,9 @@ public static void deleteFeatureTileLink(GeoPackageCore geoPackage,
161176 * and custom tables
162177 *
163178 * @param geoPackage
179+ * GeoPackage
164180 * @param ignoreErrors
181+ * true to ignore errors
165182 * @since 1.1.5
166183 */
167184 public static void deleteFeatureTileLinkExtension (
@@ -178,8 +195,8 @@ public static void deleteFeatureTileLinkExtension(
178195 ignoreErrors );
179196 }
180197 if (extensionsDao .isTableExists ()) {
181- extensionsDao . deleteByExtension (
182- FeatureTileTableCoreLinker .EXTENSION_NAME );
198+ extensionsDao
199+ . deleteByExtension ( FeatureTileTableCoreLinker .EXTENSION_NAME );
183200 }
184201 } catch (SQLException e ) {
185202 throw new GeoPackageException (
@@ -189,4 +206,67 @@ public static void deleteFeatureTileLinkExtension(
189206
190207 }
191208
209+ /**
210+ * Delete the Tile Scaling extensions for the table
211+ *
212+ * @param geoPackage
213+ * GeoPackage
214+ * @param table
215+ * table name
216+ * @since 2.0.2
217+ */
218+ public static void deleteTileScaling (GeoPackageCore geoPackage , String table ) {
219+
220+ TileScalingDao tileScalingDao = geoPackage .getTileScalingDao ();
221+ ExtensionsDao extensionsDao = geoPackage .getExtensionsDao ();
222+
223+ try {
224+ if (tileScalingDao .isTableExists ()) {
225+ tileScalingDao .deleteById (table );
226+ }
227+ if (extensionsDao .isTableExists ()) {
228+ extensionsDao .deleteByExtension (
229+ TileTableScaling .EXTENSION_NAME , table );
230+ }
231+ } catch (SQLException e ) {
232+ throw new GeoPackageException (
233+ "Failed to delete Tile Scaling. GeoPackage: "
234+ + geoPackage .getName () + ", Table: " + table , e );
235+ }
236+ }
237+
238+ /**
239+ * Delete the Tile Scaling extension including the extension entries and
240+ * custom tables
241+ *
242+ * @param geoPackage
243+ * GeoPackage
244+ * @param ignoreErrors
245+ * true to ignore errors
246+ * @since 2.0.2
247+ */
248+ public static void deleteTileScalingExtension (GeoPackageCore geoPackage ,
249+ boolean ignoreErrors ) {
250+
251+ TileScalingDao tileScalingDao = geoPackage .getTileScalingDao ();
252+ ExtensionsDao extensionsDao = geoPackage .getExtensionsDao ();
253+ ConnectionSource connectionSource = geoPackage .getDatabase ()
254+ .getConnectionSource ();
255+ try {
256+ if (tileScalingDao .isTableExists ()) {
257+ TableUtils .dropTable (connectionSource , TileScaling .class ,
258+ ignoreErrors );
259+ }
260+ if (extensionsDao .isTableExists ()) {
261+ extensionsDao
262+ .deleteByExtension (TileTableScaling .EXTENSION_NAME );
263+ }
264+ } catch (SQLException e ) {
265+ throw new GeoPackageException (
266+ "Failed to delete Tile Scaling extension and table. GeoPackage: "
267+ + geoPackage .getName (), e );
268+ }
269+
270+ }
271+
192272}
0 commit comments