ZihanLi58 commented on code in PR #3643:
URL: https://github.com/apache/gobblin/pull/3643#discussion_r1115049962


##########
gobblin-data-management/src/main/java/org/apache/gobblin/data/management/copy/iceberg/IcebergCatalog.java:
##########
@@ -17,10 +17,25 @@
 
 package org.apache.gobblin.data.management.copy.iceberg;
 
+import org.apache.iceberg.catalog.Catalog;
+
 
 /**
  * Any catalog from which to access {@link IcebergTable}s.
  */
 public interface IcebergCatalog {
   IcebergTable openTable(String dbName, String tableName);
+  String getCatalogUri();
+
+  /**
+   * Adding a sub interface to help us provide an association between {@link 
Catalog} and {@link IcebergCatalog}.
+   * This helps us resolve to the Catalog to its concrete implementation class
+   * Primarily needed to access `newTableOps` method which only certain {@link 
Catalog} derived classes open for public access
+   */
+  interface CatalogSpecifier {

Review Comment:
   For other types of iceberg operation, it seems like gobblin icebergCatalog 
is not needed. And it does not make sense for me to declare a specifier if I 
just want to use a different type of catalog.  
   Can we have only one Gobblin IcebergCatalog class that takes the normal 
catalog, and throw an exception if the normal catalog does not set newTableOps 
as a public method? You can use this 
https://www.digitalocean.com/community/tutorials/java-reflection-example-tutoria
 to check whether a method is protect or public



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to