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

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


The following commit(s) were added to 
refs/heads/geoparquet-filtering-and-simplification by this push:
     new 37b44ea3 Fix issues in group
37b44ea3 is described below

commit 37b44ea327b20850599c9d28f6eea13bcbc5550f
Author: Bertil Chapuis <[email protected]>
AuthorDate: Sat Oct 12 13:23:44 2024 +0200

    Fix issues in group
---
 .../baremaps/geoparquet/GeoParquetGroup.java       | 116 +++++++++------------
 .../baremaps/geoparquet/GeoParquetReaderTest.java  |   2 +-
 2 files changed, 53 insertions(+), 65 deletions(-)

diff --git 
a/baremaps-geoparquet/src/main/java/org/apache/baremaps/geoparquet/GeoParquetGroup.java
 
b/baremaps-geoparquet/src/main/java/org/apache/baremaps/geoparquet/GeoParquetGroup.java
index 35617447..36b6bbf4 100644
--- 
a/baremaps-geoparquet/src/main/java/org/apache/baremaps/geoparquet/GeoParquetGroup.java
+++ 
b/baremaps-geoparquet/src/main/java/org/apache/baremaps/geoparquet/GeoParquetGroup.java
@@ -30,6 +30,7 @@ import org.locationtech.jts.geom.Geometry;
 import org.locationtech.jts.io.ParseException;
 import org.locationtech.jts.io.WKBReader;
 import org.locationtech.jts.io.WKBWriter;
+import org.locationtech.jts.io.WKTWriter;
 
 /**
  * A group of fields in a GeoParquet file.
@@ -225,48 +226,6 @@ public class GeoParquetGroup {
     return new GeoParquetException(msg);
   }
 
-  public String toString() {
-    return toString("");
-  }
-
-  public String toString(String indent) {
-    StringBuilder builder = new StringBuilder();
-    appendToString(builder, indent);
-    return builder.toString();
-  }
-
-  private void appendToString(StringBuilder builder, String indent) {
-    int i = 0;
-    for (org.apache.parquet.schema.Type field : parquetSchema.getFields()) {
-      String name = field.getName();
-      Object object = data[i];
-      ++i;
-      if (object != null) {
-        if (object instanceof List<?>values) {
-          for (Object value : values) {
-            builder.append(indent).append(name);
-            if (value == null) {
-              builder.append(": NULL\n");
-            } else if (value instanceof GeoParquetGroup group) {
-              builder.append('\n');
-              group.appendToString(builder, indent + "  ");
-            } else {
-              builder.append(": ").append(value).append('\n');
-            }
-          }
-        } else {
-          builder.append(indent).append(name);
-          if (object instanceof GeoParquetGroup group) {
-            builder.append('\n');
-            group.appendToString(builder, indent + "  ");
-          } else {
-            builder.append(": ").append(object).append('\n');
-          }
-        }
-      }
-    }
-  }
-
   public GeoParquetSchema getGeoParquetSchema() {
     return geoParquetSchema;
   }
@@ -280,30 +239,10 @@ public class GeoParquetGroup {
   }
 
   // Getter methods for different data types
-  public String getString(int fieldIndex, int index) {
+  public String getStringValue(int fieldIndex, int index) {
     return getBinaryValue(fieldIndex, index).toStringUsingUTF8();
   }
 
-  public int getInteger(int fieldIndex, int index) {
-    return (int) getValue(fieldIndex, index);
-  }
-
-  public long getLong(int fieldIndex, int index) {
-    return (long) getValue(fieldIndex, index);
-  }
-
-  public double getDouble(int fieldIndex, int index) {
-    return (double) getValue(fieldIndex, index);
-  }
-
-  public float getFloat(int fieldIndex, int index) {
-    return (float) getValue(fieldIndex, index);
-  }
-
-  public boolean getBoolean(int fieldIndex, int index) {
-    return (boolean) getValue(fieldIndex, index);
-  }
-
   public Binary getBinaryValue(int fieldIndex, int index) {
     return (Binary) getValue(fieldIndex, index);
   }
@@ -343,7 +282,7 @@ public class GeoParquetGroup {
   }
 
   public String getStringValue(int fieldIndex) {
-    return getString(fieldIndex, 0);
+    return getStringValue(fieldIndex, 0);
   }
 
   public Geometry getGeometryValue(int fieldIndex) {
@@ -514,4 +453,53 @@ public class GeoParquetGroup {
     return getEnvelopeValues(parquetSchema.getFieldIndex(fieldName));
   }
 
+  public String toString() {
+    return toString("");
+  }
+
+  private String toString(String indent) {
+    StringBuilder builder = new StringBuilder();
+    int fieldCount = parquetSchema.getFields().size();
+
+    for (int i = 0; i < fieldCount; i++) {
+      String fieldName = parquetSchema.getFieldName(i);
+      Object fieldValue = data[i];
+      if (fieldValue != null) {
+        appendFieldToString(builder, indent, fieldName, fieldValue);
+      }
+    }
+
+    return builder.toString();
+  }
+
+  private void appendFieldToString(StringBuilder builder, String indent, 
String fieldName, Object fieldValue) {
+    if (fieldValue instanceof List<?> values) {
+      for (Object value : values) {
+        appendValueToString(builder, indent, fieldName, value);
+      }
+    } else {
+      appendValueToString(builder, indent, fieldName, fieldValue);
+    }
+  }
+
+  private void appendValueToString(StringBuilder builder, String indent, 
String fieldName, Object value) {
+    builder.append(indent).append(fieldName);
+    if (value == null) {
+      builder.append(": NULL\n");
+    } else if (value instanceof GeoParquetGroup group) {
+      builder.append("\n").append(group.toString(indent + "  "));
+    } else {
+      String valueString = getValueAsString(value);
+      builder.append(": ").append(valueString).append("\n");
+    }
+  }
+
+  private String getValueAsString(Object value) {
+    if (value instanceof Binary binary) {
+      return binary.toStringUsingUTF8();
+    } else {
+      return value.toString();
+    }
+  }
+
 }
diff --git 
a/baremaps-geoparquet/src/test/java/org/apache/baremaps/geoparquet/GeoParquetReaderTest.java
 
b/baremaps-geoparquet/src/test/java/org/apache/baremaps/geoparquet/GeoParquetReaderTest.java
index 849720a3..efda0f7a 100644
--- 
a/baremaps-geoparquet/src/test/java/org/apache/baremaps/geoparquet/GeoParquetReaderTest.java
+++ 
b/baremaps-geoparquet/src/test/java/org/apache/baremaps/geoparquet/GeoParquetReaderTest.java
@@ -30,7 +30,7 @@ class GeoParquetReaderTest {
   void read() {
     URI geoParquet = TestFiles.GEOPARQUET.toUri();
     GeoParquetReader geoParquetReader = new GeoParquetReader(geoParquet);
-    assertEquals(5, geoParquetReader.read().count());
+    assertEquals(5, geoParquetReader.read().peek(System.out::println).count());
   }
 
   @Test

Reply via email to