This is an automated email from the ASF dual-hosted git repository.

bchapuis pushed a commit to branch flatgeobuf
in repository https://gitbox.apache.org/repos/asf/incubator-baremaps.git

commit 34a82af9d68993c64efac2cbc9feadef31131e67
Author: Bertil Chapuis <[email protected]>
AuthorDate: Tue Jun 25 01:00:38 2024 +0200

    Minor refactoring
---
 .../apache/baremaps/flatgeobuf/FlatGeoBufReader.java  | 19 +------------------
 .../apache/baremaps/flatgeobuf/FlatGeoBufWriter.java  | 19 +++++++++++--------
 .../apache/baremaps/flatgeobuf/FlatGeoBufTest.java    | 18 +++++++++++-------
 3 files changed, 23 insertions(+), 33 deletions(-)

diff --git 
a/baremaps-flatgeobuf/src/main/java/org/apache/baremaps/flatgeobuf/FlatGeoBufReader.java
 
b/baremaps-flatgeobuf/src/main/java/org/apache/baremaps/flatgeobuf/FlatGeoBufReader.java
index 38b49fa0..650b6559 100644
--- 
a/baremaps-flatgeobuf/src/main/java/org/apache/baremaps/flatgeobuf/FlatGeoBufReader.java
+++ 
b/baremaps-flatgeobuf/src/main/java/org/apache/baremaps/flatgeobuf/FlatGeoBufReader.java
@@ -25,13 +25,11 @@ import java.nio.ByteOrder;
 import java.nio.channels.Channels;
 import java.nio.channels.ReadableByteChannel;
 import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.IntStream;
 import org.apache.baremaps.flatgeobuf.generated.Column;
 import org.apache.baremaps.flatgeobuf.generated.Feature;
 import org.apache.baremaps.flatgeobuf.generated.Header;
-import org.locationtech.jts.geom.Geometry;
 
 public class FlatGeoBufReader {
 
@@ -110,22 +108,7 @@ public class FlatGeoBufReader {
       Header header, ByteBuffer buffer)
       throws IOException {
     Feature feature = readFeatureFlatGeoBuf(channel, buffer);
-    List<Object> properties = new ArrayList<>();
-
-    if (feature.propertiesLength() > 0) {
-      var propertiesBuffer = feature.propertiesAsByteBuffer();
-      while (propertiesBuffer.hasRemaining()) {
-        var type = propertiesBuffer.getShort();
-        var column = header.columns(type);
-        var value = readValue(propertiesBuffer, column);
-        properties.add(value);
-      }
-    }
-
-
-    Geometry geometry =
-        GeometryConversions.readGeometry(feature.geometry(), 
header.geometryType());
-    return new FlatGeoBuf.Feature(properties, geometry);
+    return FlatGeoBufWriter.asFeatureRecord(header, feature);
   }
 
   /**
diff --git 
a/baremaps-flatgeobuf/src/main/java/org/apache/baremaps/flatgeobuf/FlatGeoBufWriter.java
 
b/baremaps-flatgeobuf/src/main/java/org/apache/baremaps/flatgeobuf/FlatGeoBufWriter.java
index 71ec6dd4..70ce5b78 100644
--- 
a/baremaps-flatgeobuf/src/main/java/org/apache/baremaps/flatgeobuf/FlatGeoBufWriter.java
+++ 
b/baremaps-flatgeobuf/src/main/java/org/apache/baremaps/flatgeobuf/FlatGeoBufWriter.java
@@ -42,7 +42,8 @@ public class FlatGeoBufWriter {
     writeHeaderFlatGeoBuf(channel, headerFlatGeoBuf);
   }
 
-  public static void writeHeaderFlatGeoBuf(WritableByteChannel channel, Header 
header) throws IOException {
+  public static void writeHeaderFlatGeoBuf(WritableByteChannel channel, Header 
header)
+      throws IOException {
     ByteBuffer headerBuffer = header.getByteBuffer();
     ByteBuffer startBuffer = 
ByteBuffer.allocate(12).order(ByteOrder.LITTLE_ENDIAN);
     startBuffer.put(FlatGeoBuf.MAGIC_BYTES);
@@ -70,7 +71,8 @@ public class FlatGeoBufWriter {
     }
   }
 
-  public static void writeFeatureFlatGeoBuf(WritableByteChannel channel, 
Feature feature) throws IOException {
+  public static void asFeatureRecord(WritableByteChannel channel, Feature 
feature)
+      throws IOException {
     ByteBuffer sizeBuffer = 
ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN);
     sizeBuffer.putInt(feature.getByteBuffer().remaining());
     sizeBuffer.flip();
@@ -88,7 +90,7 @@ public class FlatGeoBufWriter {
       Header header,
       FlatGeoBuf.Feature feature) throws IOException {
     Feature featureRecord = writeFeature(header, feature);
-    writeFeatureFlatGeoBuf(channel, featureRecord);
+    asFeatureRecord(channel, featureRecord);
   }
 
   public static Header asHeaderRecord(FlatGeoBuf.Header header) {
@@ -244,18 +246,19 @@ public class FlatGeoBufWriter {
     return Feature.getRootAsFeature(buffer);
   }
 
-  public static FlatGeoBuf.Feature writeFeatureFlatGeoBuf(Header header, 
Feature feature) {
-    var values = new ArrayList<>();
+  public static FlatGeoBuf.Feature asFeatureRecord(Header header, Feature 
feature) {
+    var properties = new ArrayList<>();
     if (feature.propertiesLength() > 0) {
       var propertiesBuffer = feature.propertiesAsByteBuffer();
       while (propertiesBuffer.hasRemaining()) {
         var columnPosition = propertiesBuffer.getShort();
         var columnType = header.columns(columnPosition);
         var columnValue = readValue(propertiesBuffer, columnType);
-        values.add(columnValue);
+        properties.add(columnValue);
       }
     }
-    return new FlatGeoBuf.Feature(
-        values, GeometryConversions.readGeometry(feature.geometry(), 
header.geometryType()));
+    Geometry geometry =
+        GeometryConversions.readGeometry(feature.geometry(), 
header.geometryType());
+    return new FlatGeoBuf.Feature(properties, geometry);
   }
 }
diff --git 
a/baremaps-flatgeobuf/src/test/java/org/apache/baremaps/flatgeobuf/FlatGeoBufTest.java
 
b/baremaps-flatgeobuf/src/test/java/org/apache/baremaps/flatgeobuf/FlatGeoBufTest.java
index fa5aa424..3c5c9a17 100644
--- 
a/baremaps-flatgeobuf/src/test/java/org/apache/baremaps/flatgeobuf/FlatGeoBufTest.java
+++ 
b/baremaps-flatgeobuf/src/test/java/org/apache/baremaps/flatgeobuf/FlatGeoBufTest.java
@@ -59,12 +59,13 @@ public class FlatGeoBufTest {
       ByteBuffer indexBuffer = FlatGeoBufReader.readIndexBuffer(channel, 
headerFlatGeoBuf1);
       FlatGeoBufWriter.writeIndexBuffer(tempChannel, indexBuffer);
 
-        // Copy the features
+      // Copy the features
       var buffer = ByteBuffer.allocate(1 << 10).order(ByteOrder.LITTLE_ENDIAN);
       for (int i = 0; i < headerFlatGeoBuf1.featuresCount(); i++) {
         Feature feature = FlatGeoBufReader.readFeatureFlatGeoBuf(channel, 
buffer);
-        FlatGeoBufWriter.writeFeatureFlatGeoBuf(tempChannel, feature);
-        FlatGeoBuf.Feature featureRecord = 
FlatGeoBufWriter.writeFeatureFlatGeoBuf(headerFlatGeoBuf1, feature);
+        FlatGeoBufWriter.asFeatureRecord(tempChannel, feature);
+        FlatGeoBuf.Feature featureRecord =
+            FlatGeoBufWriter.asFeatureRecord(headerFlatGeoBuf1, feature);
         featureRecords.add(featureRecord);
       }
     }
@@ -85,7 +86,8 @@ public class FlatGeoBufTest {
       ByteBuffer buffer = ByteBuffer.allocate(1 << 
10).order(ByteOrder.LITTLE_ENDIAN);
       for (int i = 0; i < headerFlatGeoBuf2.featuresCount(); i++) {
         Feature featureFlatGeoBuf = 
FlatGeoBufReader.readFeatureFlatGeoBuf(channel, buffer);
-        FlatGeoBuf.Feature featureRecord = 
FlatGeoBufWriter.writeFeatureFlatGeoBuf(headerFlatGeoBuf2, featureFlatGeoBuf);
+        FlatGeoBuf.Feature featureRecord =
+            FlatGeoBufWriter.asFeatureRecord(headerFlatGeoBuf2, 
featureFlatGeoBuf);
         assertNotNull(featureRecord);
         assertEquals(featureRecords.get(i), featureRecord);
       }
@@ -103,7 +105,7 @@ public class FlatGeoBufTest {
 
     // Copy the file
     try (ReadableByteChannel channel = FileChannel.open(file, 
StandardOpenOption.READ);
-         WritableByteChannel tempChannel = FileChannel.open(tempFile, 
StandardOpenOption.WRITE)) {
+        WritableByteChannel tempChannel = FileChannel.open(tempFile, 
StandardOpenOption.WRITE)) {
 
       // Copy the header
       headerRecord1 = FlatGeoBufReader.readHeaderRecord(channel);
@@ -117,7 +119,8 @@ public class FlatGeoBufTest {
       // Copy the features
       var buffer = ByteBuffer.allocate(1 << 10).order(ByteOrder.LITTLE_ENDIAN);
       for (int i = 0; i < headerFlatGeoBuf1.featuresCount(); i++) {
-        FlatGeoBuf.Feature feature = 
FlatGeoBufReader.readFeatureRecord(channel, headerFlatGeoBuf1, buffer);
+        FlatGeoBuf.Feature feature =
+            FlatGeoBufReader.readFeatureRecord(channel, headerFlatGeoBuf1, 
buffer);
         FlatGeoBufWriter.writeFeatureRecord(tempChannel, headerFlatGeoBuf1, 
feature);
         featureRecords.add(feature);
       }
@@ -138,7 +141,8 @@ public class FlatGeoBufTest {
       // Read the features
       ByteBuffer buffer = ByteBuffer.allocate(1 << 
10).order(ByteOrder.LITTLE_ENDIAN);
       for (int i = 0; i < headerFlatGeoBuf2.featuresCount(); i++) {
-        FlatGeoBuf.Feature featureRecord = 
FlatGeoBufReader.readFeatureRecord(channel, headerFlatGeoBuf2, buffer);
+        FlatGeoBuf.Feature featureRecord =
+            FlatGeoBufReader.readFeatureRecord(channel, headerFlatGeoBuf2, 
buffer);
         assertNotNull(featureRecord);
         assertEquals(featureRecords.get(i), featureRecord);
       }

Reply via email to