Skip to content

Commit afa9714

Browse files
committed
additional cache close methods
1 parent 0872e17 commit afa9714

File tree

1 file changed

+51
-8
lines changed

1 file changed

+51
-8
lines changed

src/main/java/mil/nga/geopackage/GeoPackageCoreCache.java

Lines changed: 51 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -232,17 +232,60 @@ public void close(Collection<String> names) {
232232
*
233233
* @param geoPackage
234234
* GeoPackage
235+
* @since 3.1.0
236+
*/
237+
public void close(T geoPackage) {
238+
if (geoPackage != null) {
239+
try {
240+
geoPackage.close();
241+
} catch (Exception e) {
242+
logger.log(Level.SEVERE, "Error closing GeoPackage: "
243+
+ geoPackage.getName(), e);
244+
if (!closeQuietly) {
245+
throw e;
246+
}
247+
}
248+
}
249+
}
250+
251+
/**
252+
* Close the GeoPackage if it is cached (same GeoPackage instance)
253+
*
254+
* @param geoPackage
255+
* GeoPackage
256+
* @return true if closed
257+
* @since 3.1.0
235258
*/
236-
private void close(T geoPackage) {
237-
try {
238-
geoPackage.close();
239-
} catch (Exception e) {
240-
logger.log(Level.SEVERE,
241-
"Error closing GeoPackage: " + geoPackage.getName(), e);
242-
if (!closeQuietly) {
243-
throw e;
259+
public boolean closeIfCached(T geoPackage) {
260+
boolean closed = false;
261+
if (geoPackage != null) {
262+
T cached = get(geoPackage.getName());
263+
if (cached != null && cached == geoPackage) {
264+
closed = close(geoPackage.getName());
265+
}
266+
}
267+
return closed;
268+
}
269+
270+
/**
271+
* Close the GeoPackage if it is not cached (GeoPackage not cached or
272+
* different instance)
273+
*
274+
* @param geoPackage
275+
* GeoPackage
276+
* @return true if closed
277+
* @since 3.1.0
278+
*/
279+
public boolean closeIfNotCached(T geoPackage) {
280+
boolean closed = false;
281+
if (geoPackage != null) {
282+
T cached = get(geoPackage.getName());
283+
if (cached == null || cached != geoPackage) {
284+
close(geoPackage);
285+
closed = true;
244286
}
245287
}
288+
return closed;
246289
}
247290

248291
}

0 commit comments

Comments
 (0)