You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@baremaps.apache.org by bc...@apache.org on 2025/04/05 12:36:26 UTC
(incubator-baremaps) 11/21: Use the builder pattern for the IndexedDataList
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 5914c17fe3847c772af1c3a58de5100ea2d33033
Author: Bertil Chapuis <bc...@gmail.com>
AuthorDate: Sat Apr 5 12:09:57 2025 +0200
Use the builder pattern for the IndexedDataList
---
.../java/org/apache/baremaps/calcite/CalciteTest.java | 16 ++++++++++------
.../baremaps/data/collection/IndexedDataList.java | 17 ++++-------------
.../java/org/apache/baremaps/data/DataListTest.java | 10 ++++++----
.../baremaps/data/sort/ExternalMergeSortTest.java | 9 +++++----
4 files changed, 25 insertions(+), 27 deletions(-)
diff --git a/baremaps-core/src/test/java/org/apache/baremaps/calcite/CalciteTest.java b/baremaps-core/src/test/java/org/apache/baremaps/calcite/CalciteTest.java
index 4f6cc2031..482d15885 100644
--- a/baremaps-core/src/test/java/org/apache/baremaps/calcite/CalciteTest.java
+++ b/baremaps-core/src/test/java/org/apache/baremaps/calcite/CalciteTest.java
@@ -80,9 +80,11 @@ class CalciteTest {
new DataColumnFixed("geometry", Cardinality.OPTIONAL, Type.GEOMETRY)));
DataTable cityDataTable = new BaremapsDataTable(
cityRowType,
- new IndexedDataList<>(AppendOnlyLog.<DataRow>builder()
- .dataType(new RowDataType(cityRowType))
- .build()));
+ IndexedDataList.<DataRow>builder()
+ .values(AppendOnlyLog.<DataRow>builder()
+ .dataType(new RowDataType(cityRowType))
+ .build())
+ .build());
cityDataTable.add(new DataRowImpl(cityDataTable.schema(),
List.of(1, "Paris", geometryFactory.createPoint(new Coordinate(2.3522, 48.8566)))));
cityDataTable.add(new DataRowImpl(cityDataTable.schema(),
@@ -96,9 +98,11 @@ class CalciteTest {
new DataColumnFixed("population", Cardinality.OPTIONAL, Type.INTEGER)));
DataTable populationDataTable = new BaremapsDataTable(
populationRowType,
- new IndexedDataList<>(AppendOnlyLog.<DataRow>builder()
- .dataType(new RowDataType(populationRowType))
- .build()));
+ IndexedDataList.<DataRow>builder()
+ .values(AppendOnlyLog.<DataRow>builder()
+ .dataType(new RowDataType(populationRowType))
+ .build())
+ .build());
populationDataTable
.add(new DataRowImpl(populationDataTable.schema(), List.of(1, 2_161_000)));
populationDataTable
diff --git a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/IndexedDataList.java b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/IndexedDataList.java
index 89b887044..da973b83f 100644
--- a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/IndexedDataList.java
+++ b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/IndexedDataList.java
@@ -86,29 +86,20 @@ public class IndexedDataList<E> implements DataList<E> {
}
if (index == null) {
- return new IndexedDataList<>(values);
- } else {
- return new IndexedDataList<>(index, values);
+ index = new MemoryAlignedDataList<>(new LongDataType());
}
+
+ return new IndexedDataList<>(index, values);
}
}
- /**
- * Constructs a {@link IndexedDataList}.
- *
- * @param values the values
- */
- public IndexedDataList(AppendOnlyLog<E> values) {
- this(new MemoryAlignedDataList<>(new LongDataType()), values);
- }
-
/**
* Constructs a {@link IndexedDataList}.
*
* @param index the index
* @param values the values
*/
- public IndexedDataList(DataList<Long> index, AppendOnlyLog<E> values) {
+ private IndexedDataList(DataList<Long> index, AppendOnlyLog<E> values) {
this.index = index;
this.values = values;
}
diff --git a/baremaps-data/src/test/java/org/apache/baremaps/data/DataListTest.java b/baremaps-data/src/test/java/org/apache/baremaps/data/DataListTest.java
index c94858bb6..6b1a1db76 100644
--- a/baremaps-data/src/test/java/org/apache/baremaps/data/DataListTest.java
+++ b/baremaps-data/src/test/java/org/apache/baremaps/data/DataListTest.java
@@ -78,10 +78,12 @@ class DataListTest {
Arguments.of(FixedSizeDataList.<Long>builder()
.dataType(new LongDataType())
.build()),
- Arguments.of(new IndexedDataList<>(new MemoryAlignedDataList<>(new LongDataType()),
- AppendOnlyLog.<Long>builder()
- .dataType(new LongDataType())
- .build())),
+ Arguments.of(IndexedDataList.<Long>builder()
+ .index(new MemoryAlignedDataList<>(new LongDataType()))
+ .values(AppendOnlyLog.<Long>builder()
+ .dataType(new LongDataType())
+ .build())
+ .build()),
Arguments.of(new MemoryAlignedDataList<>(new LongDataType())));
}
}
diff --git a/baremaps-data/src/test/java/org/apache/baremaps/data/sort/ExternalMergeSortTest.java b/baremaps-data/src/test/java/org/apache/baremaps/data/sort/ExternalMergeSortTest.java
index c42b9a89b..c4c51f0cf 100644
--- a/baremaps-data/src/test/java/org/apache/baremaps/data/sort/ExternalMergeSortTest.java
+++ b/baremaps-data/src/test/java/org/apache/baremaps/data/sort/ExternalMergeSortTest.java
@@ -53,12 +53,13 @@ class ExternalMergeSortTest {
stringsAsc = strings.stream().sorted(Comparator.naturalOrder()).toList();
stringsDsc = strings.stream().sorted(Comparator.reverseOrder()).toList();
stringsDistinct = stringsAsc.stream().distinct().toList();
- supplier = () -> new IndexedDataList<>(
- new MemoryAlignedDataList<>(new LongDataType(), new OnHeapMemory()),
- AppendOnlyLog.<String>builder()
+ supplier = () -> IndexedDataList.<String>builder()
+ .index(new MemoryAlignedDataList<>(new LongDataType(), new OnHeapMemory()))
+ .values(AppendOnlyLog.<String>builder()
.dataType(new StringDataType())
.memory(new OnHeapMemory())
- .build());
+ .build())
+ .build();
input = supplier.get();
output = supplier.get();
for (var string : strings) {