Kontinuation commented on code in PR #2971:
URL: https://github.com/apache/parquet-java/pull/2971#discussion_r1962779548


##########
parquet-column/src/main/java/org/apache/parquet/schema/LogicalTypeAnnotation.java:
##########
@@ -1091,6 +1139,156 @@ public int hashCode() {
     }
   }
 
+  public static class GeometryLogicalTypeAnnotation extends 
LogicalTypeAnnotation {
+    private final String crs;
+    private final ByteBuffer metadata;
+
+    private GeometryLogicalTypeAnnotation(String crs, ByteBuffer metadata) {
+      this.crs = crs;
+      this.metadata = metadata;
+    }
+
+    @Override
+    @Deprecated
+    public OriginalType toOriginalType() {
+      return null;
+    }
+
+    @Override
+    public <T> Optional<T> accept(LogicalTypeAnnotationVisitor<T> 
logicalTypeAnnotationVisitor) {
+      return logicalTypeAnnotationVisitor.visit(this);
+    }
+
+    @Override
+    LogicalTypeToken getType() {
+      return LogicalTypeToken.GEOMETRY;
+    }
+
+    @Override
+    protected String typeParametersAsString() {
+      StringBuilder sb = new StringBuilder();
+      sb.append("(");
+      sb.append(",");
+      if (crs != null && !crs.isEmpty()) {
+        sb.append(",");
+        sb.append(crs);
+      }
+      if (metadata != null) {
+        sb.append(",");
+        sb.append(metadata);
+      }
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public String getCrs() {
+      return crs;
+    }
+
+    public ByteBuffer getMetadata() {
+      return metadata;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+      if (!(obj instanceof GeometryLogicalTypeAnnotation)) {
+        return false;
+      }
+      GeometryLogicalTypeAnnotation other = (GeometryLogicalTypeAnnotation) 
obj;
+      return crs.equals(other.crs);
+    }
+
+    @Override
+    public int hashCode() {
+      return Objects.hash(crs);
+    }
+
+    @Override
+    PrimitiveStringifier valueStringifier(PrimitiveType primitiveType) {
+      return PrimitiveStringifier.WKB_STRINGIFIER;
+    }
+  }
+
+  public static class GeographyLogicalTypeAnnotation extends 
LogicalTypeAnnotation {
+    private final String crs;
+    private final String edgeAlgorithm;

Review Comment:
   `parquet-column` defines its own enum for the enums that are defined by 
thrift. Examples are [enum 
Encoding](https://github.com/apache/parquet-java/blob/78c9c5cb9152a159d1fabc917a1c14e364875022/parquet-column/src/main/java/org/apache/parquet/column/Encoding.java)
 and [enum 
CompressionCodecName](https://github.com/apache/parquet-java/blob/78c9c5cb9152a159d1fabc917a1c14e364875022/parquet-common/src/main/java/org/apache/parquet/hadoop/metadata/CompressionCodecName.java).
 I'm not sure if we should follow the same convention for 
`EdgeInterpolationAlgorithm`.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@parquet.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@parquet.apache.org
For additional commands, e-mail: issues-h...@parquet.apache.org

Reply via email to