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 9c4a0deaaa4447cad7174e605556a2a6b54d81af Author: Bertil Chapuis <[email protected]> AuthorDate: Sat Apr 5 13:17:31 2025 +0200 Use the builder pattern for the MonotonicPairedDataMap --- .../apache/baremaps/workflow/WorkflowContext.java | 7 ++++--- .../data/collection/MonotonicPairedDataMap.java | 22 +++++++--------------- .../java/org/apache/baremaps/data/DataMapTest.java | 7 ++++--- 3 files changed, 15 insertions(+), 21 deletions(-) diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/WorkflowContext.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/WorkflowContext.java index bfcbf7cc0..037b1c40a 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/WorkflowContext.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/WorkflowContext.java @@ -104,11 +104,12 @@ public class WorkflowContext { DataType<Coordinate> dataType) throws IOException { Path mapDir = Files.createDirectories(cacheDir.resolve(name)); - return new MonotonicPairedDataMap<>( - MemoryAlignedDataList.<PairDataType.Pair<Long, Coordinate>>builder() + return MonotonicPairedDataMap.<Coordinate>builder() + .values(MemoryAlignedDataList.<PairDataType.Pair<Long, Coordinate>>builder() .dataType(new PairDataType<>(new LongDataType(), new LonLatDataType())) .memory(new MemoryMappedDirectory(Files.createDirectories(mapDir))) - .build()); + .build()) + .build(); } public void cleanCache() throws IOException { 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 882c49903..07c285f9d 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 @@ -96,30 +96,22 @@ public class MonotonicPairedDataMap<E> implements DataMap<Long, E> { } if (offsets == null) { - return new MonotonicPairedDataMap<>(values); - } else { - return new MonotonicPairedDataMap<>(offsets, values); + offsets = MemoryAlignedDataList.<Long>builder() + .dataType(new LongDataType()) + .build(); } + + return new MonotonicPairedDataMap<>(offsets, values); } } /** - * Constructs a {@link MonotonicPairedDataMap}. - */ - public MonotonicPairedDataMap(MemoryAlignedDataList<Pair<Long, E>> values) { - this(MemoryAlignedDataList.<Long>builder() - .dataType(new LongDataType()) - .build(), - values); - } - - /** - * Constructs a {@link MonotonicPairedDataMap}. + * Private constructor for {@link MonotonicPairedDataMap}. * * @param offsets the list of offsets * @param values the buffer of values */ - public MonotonicPairedDataMap(DataList<Long> offsets, + private MonotonicPairedDataMap(DataList<Long> offsets, MemoryAlignedDataList<Pair<Long, E>> values) { this.offsets = offsets; this.values = values; diff --git a/baremaps-data/src/test/java/org/apache/baremaps/data/DataMapTest.java b/baremaps-data/src/test/java/org/apache/baremaps/data/DataMapTest.java index 5755d0758..a66a16a67 100644 --- a/baremaps-data/src/test/java/org/apache/baremaps/data/DataMapTest.java +++ b/baremaps-data/src/test/java/org/apache/baremaps/data/DataMapTest.java @@ -187,10 +187,11 @@ class DataMapTest { .memory(new OffHeapMemory()) .build()) .build()), - Arguments.of(new MonotonicPairedDataMap<>( - MemoryAlignedDataList.<PairDataType.Pair<Long, Long>>builder() + Arguments.of(MonotonicPairedDataMap.<Long>builder() + .values(MemoryAlignedDataList.<PairDataType.Pair<Long, Long>>builder() .dataType(new PairDataType<>(new LongDataType(), new LongDataType())) - .build())), + .build()) + .build()), Arguments.of(DirectHashDataMap.<Long>builder() .keyType(new LongDataType()) .dataType(new LongDataType())
