This is an automated email from the ASF dual-hosted git repository. bchapuis pushed a commit to branch data-refactoring in repository https://gitbox.apache.org/repos/asf/incubator-baremaps.git
commit 27e71bf5897ebac11e138017ff4fc02d6f9c67c8 Author: Bertil Chapuis <[email protected]> AuthorDate: Sat Apr 5 09:42:02 2025 +0200 Make DataMap extend AutoCloseable --- .../org/apache/baremaps/data/collection/DataConversions.java | 7 +++++++ .../main/java/org/apache/baremaps/data/collection/DataMap.java | 2 +- .../org/apache/baremaps/data/collection/IndexedDataMap.java | 9 +++++++++ .../apache/baremaps/data/collection/MemoryAlignedDataMap.java | 8 ++++++++ .../org/apache/baremaps/data/collection/MonotonicDataMap.java | 10 ++++++++++ .../baremaps/data/collection/MonotonicFixedSizeDataMap.java | 10 ++++++++++ .../baremaps/data/collection/MonotonicPairedDataMap.java | 10 ++++++++++ 7 files changed, 55 insertions(+), 1 deletion(-) diff --git a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/DataConversions.java b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/DataConversions.java index 999c7d9d4..3e361d77f 100644 --- a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/DataConversions.java +++ b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/DataConversions.java @@ -375,6 +375,13 @@ public class DataConversions { public int hashCode() { return map.hashCode(); } + + @Override + public void close() throws Exception { + if (map instanceof AutoCloseable) { + ((AutoCloseable) map).close(); + } + } } } diff --git a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/DataMap.java b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/DataMap.java index 1a9095246..1ae196bf3 100644 --- a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/DataMap.java +++ b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/DataMap.java @@ -31,7 +31,7 @@ import java.util.function.BiConsumer; * @param <K> The type of the keys. * @param <V> The type of the values. */ -public interface DataMap<K, V> { +public interface DataMap<K, V> extends AutoCloseable { /** * Returns the number of values stored in the data map. diff --git a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/IndexedDataMap.java b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/IndexedDataMap.java index f1c6d546f..346972200 100644 --- a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/IndexedDataMap.java +++ b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/IndexedDataMap.java @@ -121,4 +121,13 @@ public class IndexedDataMap<E> implements DataMap<Long, E> { index.clear(); values.clear(); } + + @Override + public void close() throws Exception { + try { + values.close(); + } catch (Exception e) { + throw new DataCollectionException(e); + } + } } diff --git a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/MemoryAlignedDataMap.java b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/MemoryAlignedDataMap.java index aeeea0107..2d5080dea 100644 --- a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/MemoryAlignedDataMap.java +++ b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/MemoryAlignedDataMap.java @@ -210,4 +210,12 @@ public class MemoryAlignedDataMap<E> implements DataMap<Long, E> { }; } + @Override + public void close() throws Exception { + try { + memory.close(); + } catch (Exception e) { + throw new DataCollectionException(e); + } + } } diff --git a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/MonotonicDataMap.java b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/MonotonicDataMap.java index f590e815c..557a10338 100644 --- a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/MonotonicDataMap.java +++ b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/MonotonicDataMap.java @@ -172,4 +172,14 @@ public class MonotonicDataMap<E> implements DataMap<Long, E> { values.clear(); } + @Override + public void close() throws Exception { + try { + offsets.close(); + keys.close(); + values.close(); + } catch (Exception e) { + throw new RuntimeException(e); + } + } } diff --git a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/MonotonicFixedSizeDataMap.java b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/MonotonicFixedSizeDataMap.java index f0992cb94..611dd5daa 100644 --- a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/MonotonicFixedSizeDataMap.java +++ b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/MonotonicFixedSizeDataMap.java @@ -152,4 +152,14 @@ public class MonotonicFixedSizeDataMap<E> implements DataMap<Long, E> { values.clear(); } + @Override + public void close() throws Exception { + try { + offsets.close(); + keys.close(); + values.close(); + } catch (Exception e) { + throw new RuntimeException(e); + } + } } diff --git a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/MonotonicPairedDataMap.java b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/MonotonicPairedDataMap.java index ae64e0ddb..619097058 100644 --- a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/MonotonicPairedDataMap.java +++ b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/MonotonicPairedDataMap.java @@ -151,4 +151,14 @@ public class MonotonicPairedDataMap<E> implements DataMap<Long, E> { offsets.clear(); values.clear(); } + + @Override + public void close() throws Exception { + try { + offsets.close(); + values.close(); + } catch (Exception e) { + throw new RuntimeException(e); + } + } }
