jerqi commented on code in PR #4055:
URL: https://github.com/apache/gravitino/pull/4055#discussion_r1768677915


##########
core/src/main/java/org/apache/gravitino/storage/relational/service/UserMetaService.java:
##########
@@ -246,6 +249,38 @@ public <E extends Entity & HasIdentifier> UserEntity 
updateUser(
     return newEntity;
   }
 
+  public List<UserEntity> listUsersByNamespace(Namespace namespace, 
List<Field> skippingFields) {
+    AuthorizationUtils.checkUserNamespace(namespace);
+    String metalakeName = namespace.level(0);
+
+    if (skippingFields.contains(UserEntity.ROLE_IDS)
+        && skippingFields.contains(UserEntity.ROLE_NAMES)) {

Review Comment:
   After considering twice, I extract an interface `SupportsSkippingFields` to 
express the `list user namespace` handler. I also wrap the logic which we 
select the handler according to skipping fields into 
`SupportsSKippingFieldsHandlers`.
   Now, we can match the skipping fields according to the handler which 
defined. It reduce the branches.
   Moreover, we ask the developer must add high priority handler first.(You can 
see the code `SupportsSkippingFieldsHandlers` for details). I can add the 
`priority` method for the `SupportsSkippingFields`. But for now, this is not a 
blocker. So just add a comment to notify others the correct usage for this 
interface.



-- 
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