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

shaofengshi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/main by this push:
     new a185d109b [#5685] Change main command section of Gravitino CLI to use 
switch statements (#5793)
a185d109b is described below

commit a185d109be6902e821099106d2dbe7366a325826
Author: Justin Mclean <[email protected]>
AuthorDate: Thu Dec 19 14:11:36 2024 +1100

    [#5685] Change main command section of Gravitino CLI to use switch 
statements (#5793)
    
    ### What changes were proposed in this pull request?
    
    Was suggested as part of #5685  if use case statements.
    
    Note that the variable scope of any variables is switch-wide and not
    only isolated to a single case, unlike else/if statements.
    
    ### Why are the changes needed?
    
    
    Fix: # N/A
    
    ### Does this PR introduce _any_ user-facing change?
    
    No
    
    ### How was this patch tested?
    
    Tested locally.
    
    ---------
    
    Co-authored-by: Shaofeng Shi <[email protected]>
---
 .../apache/gravitino/cli/GravitinoCommandLine.java | 995 +++++++++++++--------
 1 file changed, 606 insertions(+), 389 deletions(-)

diff --git 
a/clients/cli/src/main/java/org/apache/gravitino/cli/GravitinoCommandLine.java 
b/clients/cli/src/main/java/org/apache/gravitino/cli/GravitinoCommandLine.java
index e46a8e4c8..3603a230f 100644
--- 
a/clients/cli/src/main/java/org/apache/gravitino/cli/GravitinoCommandLine.java
+++ 
b/clients/cli/src/main/java/org/apache/gravitino/cli/GravitinoCommandLine.java
@@ -169,43 +169,63 @@ public class GravitinoCommandLine extends 
TestableCommandLine {
 
     Command.setAuthenticationMode(auth, userName);
 
-    if (CommandActions.DETAILS.equals(command)) {
-      if (line.hasOption(GravitinoOptions.AUDIT)) {
-        newMetalakeAudit(url, ignore, metalake).handle();
-      } else {
-        newMetalakeDetails(url, ignore, outputFormat, metalake).handle();
-      }
-    } else if (CommandActions.LIST.equals(command)) {
-      newListMetalakes(url, ignore, outputFormat).handle();
-    } else if (CommandActions.CREATE.equals(command)) {
-      if (Objects.isNull(metalake)) {
-        System.err.println("! " + CommandEntities.METALAKE + " is not 
defined");
-        return;
-      }
-      String comment = line.getOptionValue(GravitinoOptions.COMMENT);
-      newCreateMetalake(url, ignore, metalake, comment).handle();
-    } else if (CommandActions.DELETE.equals(command)) {
-      boolean force = line.hasOption(GravitinoOptions.FORCE);
-      newDeleteMetalake(url, ignore, force, metalake).handle();
-    } else if (CommandActions.SET.equals(command)) {
-      String property = line.getOptionValue(GravitinoOptions.PROPERTY);
-      String value = line.getOptionValue(GravitinoOptions.VALUE);
-      newSetMetalakeProperty(url, ignore, metalake, property, value).handle();
-    } else if (CommandActions.REMOVE.equals(command)) {
-      String property = line.getOptionValue(GravitinoOptions.PROPERTY);
-      newRemoveMetalakeProperty(url, ignore, metalake, property).handle();
-    } else if (CommandActions.PROPERTIES.equals(command)) {
-      newListMetalakeProperties(url, ignore, metalake).handle();
-    } else if (CommandActions.UPDATE.equals(command)) {
-      if (line.hasOption(GravitinoOptions.COMMENT)) {
+    switch (command) {
+      case CommandActions.DETAILS:
+        if (line.hasOption(GravitinoOptions.AUDIT)) {
+          newMetalakeAudit(url, ignore, metalake).handle();
+        } else {
+          newMetalakeDetails(url, ignore, outputFormat, metalake).handle();
+        }
+        break;
+
+      case CommandActions.LIST:
+        newListMetalakes(url, ignore, outputFormat).handle();
+        break;
+
+      case CommandActions.CREATE:
+        if (Objects.isNull(metalake)) {
+          System.err.println(CommandEntities.METALAKE + " is not defined");
+          return;
+        }
         String comment = line.getOptionValue(GravitinoOptions.COMMENT);
-        newUpdateMetalakeComment(url, ignore, metalake, comment).handle();
-      }
-      if (line.hasOption(GravitinoOptions.RENAME)) {
-        String newName = line.getOptionValue(GravitinoOptions.RENAME);
+        newCreateMetalake(url, ignore, metalake, comment).handle();
+        break;
+
+      case CommandActions.DELETE:
         boolean force = line.hasOption(GravitinoOptions.FORCE);
-        newUpdateMetalakeName(url, ignore, force, metalake, newName).handle();
-      }
+        newDeleteMetalake(url, ignore, force, metalake).handle();
+        break;
+
+      case CommandActions.SET:
+        String property = line.getOptionValue(GravitinoOptions.PROPERTY);
+        String value = line.getOptionValue(GravitinoOptions.VALUE);
+        newSetMetalakeProperty(url, ignore, metalake, property, 
value).handle();
+        break;
+
+      case CommandActions.REMOVE:
+        property = line.getOptionValue(GravitinoOptions.PROPERTY);
+        newRemoveMetalakeProperty(url, ignore, metalake, property).handle();
+        break;
+
+      case CommandActions.PROPERTIES:
+        newListMetalakeProperties(url, ignore, metalake).handle();
+        break;
+
+      case CommandActions.UPDATE:
+        if (line.hasOption(GravitinoOptions.COMMENT)) {
+          comment = line.getOptionValue(GravitinoOptions.COMMENT);
+          newUpdateMetalakeComment(url, ignore, metalake, comment).handle();
+        }
+        if (line.hasOption(GravitinoOptions.RENAME)) {
+          String newName = line.getOptionValue(GravitinoOptions.RENAME);
+          force = line.hasOption(GravitinoOptions.FORCE);
+          newUpdateMetalakeName(url, ignore, force, metalake, 
newName).handle();
+        }
+        break;
+
+      default:
+        System.err.println(ErrorMessages.UNSUPPORTED_COMMAND);
+        break;
     }
   }
 
@@ -222,6 +242,7 @@ public class GravitinoCommandLine extends 
TestableCommandLine {
 
     Command.setAuthenticationMode(auth, userName);
 
+    // Handle the CommandActions.LIST action separately as it doesn't use 
`catalog`
     if (CommandActions.LIST.equals(command)) {
       newListCatalogs(url, ignore, outputFormat, metalake).handle();
       return;
@@ -229,39 +250,57 @@ public class GravitinoCommandLine extends 
TestableCommandLine {
 
     String catalog = name.getCatalogName();
 
-    if (CommandActions.DETAILS.equals(command)) {
-      if (line.hasOption(GravitinoOptions.AUDIT)) {
-        newCatalogAudit(url, ignore, metalake, catalog).handle();
-      } else {
-        newCatalogDetails(url, ignore, outputFormat, metalake, 
catalog).handle();
-      }
-    } else if (CommandActions.CREATE.equals(command)) {
-      String comment = line.getOptionValue(GravitinoOptions.COMMENT);
-      String provider = line.getOptionValue(GravitinoOptions.PROVIDER);
-      String[] properties = line.getOptionValues(GravitinoOptions.PROPERTIES);
-      Map<String, String> propertyMap = new Properties().parse(properties);
-      newCreateCatalog(url, ignore, metalake, catalog, provider, comment, 
propertyMap).handle();
-    } else if (CommandActions.DELETE.equals(command)) {
-      boolean force = line.hasOption(GravitinoOptions.FORCE);
-      newDeleteCatalog(url, ignore, force, metalake, catalog).handle();
-    } else if (CommandActions.SET.equals(command)) {
-      String property = line.getOptionValue(GravitinoOptions.PROPERTY);
-      String value = line.getOptionValue(GravitinoOptions.VALUE);
-      newSetCatalogProperty(url, ignore, metalake, catalog, property, 
value).handle();
-    } else if (CommandActions.REMOVE.equals(command)) {
-      String property = line.getOptionValue(GravitinoOptions.PROPERTY);
-      newRemoveCatalogProperty(url, ignore, metalake, catalog, 
property).handle();
-    } else if (CommandActions.PROPERTIES.equals(command)) {
-      newListCatalogProperties(url, ignore, metalake, catalog).handle();
-    } else if (CommandActions.UPDATE.equals(command)) {
-      if (line.hasOption(GravitinoOptions.COMMENT)) {
+    switch (command) {
+      case CommandActions.DETAILS:
+        if (line.hasOption(GravitinoOptions.AUDIT)) {
+          newCatalogAudit(url, ignore, metalake, catalog).handle();
+        } else {
+          newCatalogDetails(url, ignore, outputFormat, metalake, 
catalog).handle();
+        }
+        break;
+
+      case CommandActions.CREATE:
         String comment = line.getOptionValue(GravitinoOptions.COMMENT);
-        newUpdateCatalogComment(url, ignore, metalake, catalog, 
comment).handle();
-      }
-      if (line.hasOption(GravitinoOptions.RENAME)) {
-        String newName = line.getOptionValue(GravitinoOptions.RENAME);
-        newUpdateCatalogName(url, ignore, metalake, catalog, newName).handle();
-      }
+        String provider = line.getOptionValue(GravitinoOptions.PROVIDER);
+        String[] properties = line.getOptionValues(CommandActions.PROPERTIES);
+        Map<String, String> propertyMap = new Properties().parse(properties);
+        newCreateCatalog(url, ignore, metalake, catalog, provider, comment, 
propertyMap).handle();
+        break;
+
+      case CommandActions.DELETE:
+        boolean force = line.hasOption(GravitinoOptions.FORCE);
+        newDeleteCatalog(url, ignore, force, metalake, catalog).handle();
+        break;
+
+      case CommandActions.SET:
+        String property = line.getOptionValue(GravitinoOptions.PROPERTY);
+        String value = line.getOptionValue(GravitinoOptions.VALUE);
+        newSetCatalogProperty(url, ignore, metalake, catalog, property, 
value).handle();
+        break;
+
+      case CommandActions.REMOVE:
+        property = line.getOptionValue(GravitinoOptions.PROPERTY);
+        newRemoveCatalogProperty(url, ignore, metalake, catalog, 
property).handle();
+        break;
+
+      case CommandActions.PROPERTIES:
+        newListCatalogProperties(url, ignore, metalake, catalog).handle();
+        break;
+
+      case CommandActions.UPDATE:
+        if (line.hasOption(GravitinoOptions.COMMENT)) {
+          String updateComment = line.getOptionValue(GravitinoOptions.COMMENT);
+          newUpdateCatalogComment(url, ignore, metalake, catalog, 
updateComment).handle();
+        }
+        if (line.hasOption(GravitinoOptions.RENAME)) {
+          String newName = line.getOptionValue(GravitinoOptions.RENAME);
+          newUpdateCatalogName(url, ignore, metalake, catalog, 
newName).handle();
+        }
+        break;
+
+      default:
+        System.err.println(ErrorMessages.UNSUPPORTED_COMMAND);
+        break;
     }
   }
 
@@ -278,6 +317,7 @@ public class GravitinoCommandLine extends 
TestableCommandLine {
 
     Command.setAuthenticationMode(auth, userName);
 
+    // Handle the CommandActions.LIST action separately as it doesn't use 
`schema`
     if (CommandActions.LIST.equals(command)) {
       newListSchema(url, ignore, metalake, catalog).handle();
       return;
@@ -285,27 +325,43 @@ public class GravitinoCommandLine extends 
TestableCommandLine {
 
     String schema = name.getSchemaName();
 
-    if (CommandActions.DETAILS.equals(command)) {
-      if (line.hasOption(GravitinoOptions.AUDIT)) {
-        newSchemaAudit(url, ignore, metalake, catalog, schema).handle();
-      } else {
-        newSchemaDetails(url, ignore, metalake, catalog, schema).handle();
-      }
-    } else if (CommandActions.CREATE.equals(command)) {
-      String comment = line.getOptionValue(GravitinoOptions.COMMENT);
-      newCreateSchema(url, ignore, metalake, catalog, schema, 
comment).handle();
-    } else if (CommandActions.DELETE.equals(command)) {
-      boolean force = line.hasOption(GravitinoOptions.FORCE);
-      newDeleteSchema(url, ignore, force, metalake, catalog, schema).handle();
-    } else if (CommandActions.SET.equals(command)) {
-      String property = line.getOptionValue(GravitinoOptions.PROPERTY);
-      String value = line.getOptionValue(GravitinoOptions.VALUE);
-      newSetSchemaProperty(url, ignore, metalake, catalog, schema, property, 
value).handle();
-    } else if (CommandActions.REMOVE.equals(command)) {
-      String property = line.getOptionValue(GravitinoOptions.PROPERTY);
-      newRemoveSchemaProperty(url, ignore, metalake, catalog, schema, 
property).handle();
-    } else if (CommandActions.PROPERTIES.equals(command)) {
-      newListSchemaProperties(url, ignore, metalake, catalog, schema).handle();
+    switch (command) {
+      case CommandActions.DETAILS:
+        if (line.hasOption(GravitinoOptions.AUDIT)) {
+          newSchemaAudit(url, ignore, metalake, catalog, schema).handle();
+        } else {
+          newSchemaDetails(url, ignore, metalake, catalog, schema).handle();
+        }
+        break;
+
+      case CommandActions.CREATE:
+        String comment = line.getOptionValue(GravitinoOptions.COMMENT);
+        newCreateSchema(url, ignore, metalake, catalog, schema, 
comment).handle();
+        break;
+
+      case CommandActions.DELETE:
+        boolean force = line.hasOption(GravitinoOptions.FORCE);
+        newDeleteSchema(url, ignore, force, metalake, catalog, 
schema).handle();
+        break;
+
+      case CommandActions.SET:
+        String property = line.getOptionValue(GravitinoOptions.PROPERTY);
+        String value = line.getOptionValue(GravitinoOptions.VALUE);
+        newSetSchemaProperty(url, ignore, metalake, catalog, schema, property, 
value).handle();
+        break;
+
+      case CommandActions.REMOVE:
+        property = line.getOptionValue(GravitinoOptions.PROPERTY);
+        newRemoveSchemaProperty(url, ignore, metalake, catalog, schema, 
property).handle();
+        break;
+
+      case CommandActions.PROPERTIES:
+        newListSchemaProperties(url, ignore, metalake, catalog, 
schema).handle();
+        break;
+
+      default:
+        System.err.println(ErrorMessages.UNSUPPORTED_COMMAND);
+        break;
     }
   }
 
@@ -323,6 +379,7 @@ public class GravitinoCommandLine extends 
TestableCommandLine {
 
     Command.setAuthenticationMode(auth, userName);
 
+    // Handle CommandActions.LIST action separately as it doesn't require the 
`table`
     if (CommandActions.LIST.equals(command)) {
       List<String> missingEntities =
           Stream.of(
@@ -343,45 +400,68 @@ public class GravitinoCommandLine extends 
TestableCommandLine {
 
     String table = name.getTableName();
 
-    if (CommandActions.DETAILS.equals(command)) {
-      if (line.hasOption(GravitinoOptions.AUDIT)) {
-        newTableAudit(url, ignore, metalake, catalog, schema, table).handle();
-      } else if (line.hasOption(GravitinoOptions.INDEX)) {
-        newListIndexes(url, ignore, metalake, catalog, schema, table).handle();
-      } else if (line.hasOption(GravitinoOptions.DISTRIBUTION)) {
-        newTableDistribution(url, ignore, metalake, catalog, schema, 
table).handle();
-      } else if (line.hasOption(GravitinoOptions.PARTITION)) {
-        newTablePartition(url, ignore, metalake, catalog, schema, 
table).handle();
-      } else if (line.hasOption(GravitinoOptions.SORTORDER)) {
-        newTableSortOrder(url, ignore, metalake, catalog, schema, 
table).handle();
-      } else {
-        newTableDetails(url, ignore, metalake, catalog, schema, 
table).handle();
-      }
-    } else if (CommandActions.CREATE.equals(command)) {
-      String columnFile = line.getOptionValue(GravitinoOptions.COLUMNFILE);
-      String comment = line.getOptionValue(GravitinoOptions.COMMENT);
-      newCreateTable(url, ignore, metalake, catalog, schema, table, 
columnFile, comment).handle();
-    } else if (CommandActions.DELETE.equals(command)) {
-      boolean force = line.hasOption(GravitinoOptions.FORCE);
-      newDeleteTable(url, ignore, force, metalake, catalog, schema, 
table).handle();
-    } else if (CommandActions.SET.equals(command)) {
-      String property = line.getOptionValue(GravitinoOptions.PROPERTY);
-      String value = line.getOptionValue(GravitinoOptions.VALUE);
-      newSetTableProperty(url, ignore, metalake, catalog, schema, table, 
property, value).handle();
-    } else if (CommandActions.REMOVE.equals(command)) {
-      String property = line.getOptionValue(GravitinoOptions.PROPERTY);
-      newRemoveTableProperty(url, ignore, metalake, catalog, schema, table, 
property).handle();
-    } else if (CommandActions.PROPERTIES.equals(command)) {
-      newListTableProperties(url, ignore, metalake, catalog, schema, 
table).handle();
-    } else if (CommandActions.UPDATE.equals(command)) {
-      if (line.hasOption(GravitinoOptions.COMMENT)) {
-        String comment = line.getOptionValue(GravitinoOptions.COMMENT);
-        newUpdateTableComment(url, ignore, metalake, catalog, schema, table, 
comment).handle();
-      }
-      if (line.hasOption(GravitinoOptions.RENAME)) {
-        String newName = line.getOptionValue(GravitinoOptions.RENAME);
-        newUpdateTableName(url, ignore, metalake, catalog, schema, table, 
newName).handle();
-      }
+    switch (command) {
+      case CommandActions.DETAILS:
+        if (line.hasOption(GravitinoOptions.AUDIT)) {
+          newTableAudit(url, ignore, metalake, catalog, schema, 
table).handle();
+        } else if (line.hasOption(GravitinoOptions.INDEX)) {
+          newListIndexes(url, ignore, metalake, catalog, schema, 
table).handle();
+        } else if (line.hasOption(GravitinoOptions.DISTRIBUTION)) {
+          newTableDistribution(url, ignore, metalake, catalog, schema, 
table).handle();
+        } else if (line.hasOption(GravitinoOptions.PARTITION)) {
+          newTablePartition(url, ignore, metalake, catalog, schema, 
table).handle();
+        } else if (line.hasOption(GravitinoOptions.SORTORDER)) {
+          newTableSortOrder(url, ignore, metalake, catalog, schema, 
table).handle();
+        } else {
+          newTableDetails(url, ignore, metalake, catalog, schema, 
table).handle();
+        }
+        break;
+
+      case CommandActions.CREATE:
+        {
+          String columnFile = line.getOptionValue(GravitinoOptions.COLUMNFILE);
+          String comment = line.getOptionValue(GravitinoOptions.COMMENT);
+          newCreateTable(url, ignore, metalake, catalog, schema, table, 
columnFile, comment)
+              .handle();
+          break;
+        }
+      case CommandActions.DELETE:
+        boolean force = line.hasOption(GravitinoOptions.FORCE);
+        newDeleteTable(url, ignore, force, metalake, catalog, schema, 
table).handle();
+        break;
+
+      case CommandActions.SET:
+        String property = line.getOptionValue(GravitinoOptions.PROPERTY);
+        String value = line.getOptionValue(GravitinoOptions.VALUE);
+        newSetTableProperty(url, ignore, metalake, catalog, schema, table, 
property, value)
+            .handle();
+        break;
+
+      case CommandActions.REMOVE:
+        property = line.getOptionValue(GravitinoOptions.PROPERTY);
+        newRemoveTableProperty(url, ignore, metalake, catalog, schema, table, 
property).handle();
+        break;
+
+      case CommandActions.PROPERTIES:
+        newListTableProperties(url, ignore, metalake, catalog, schema, 
table).handle();
+        break;
+
+      case CommandActions.UPDATE:
+        {
+          if (line.hasOption(GravitinoOptions.COMMENT)) {
+            String comment = line.getOptionValue(GravitinoOptions.COMMENT);
+            newUpdateTableComment(url, ignore, metalake, catalog, schema, 
table, comment).handle();
+          }
+          if (line.hasOption(GravitinoOptions.RENAME)) {
+            String newName = line.getOptionValue(GravitinoOptions.RENAME);
+            newUpdateTableName(url, ignore, metalake, catalog, schema, table, 
newName).handle();
+          }
+          break;
+        }
+
+      default:
+        System.err.println(ErrorMessages.UNSUPPORTED_COMMAND);
+        break;
     }
   }
 
@@ -396,33 +476,47 @@ public class GravitinoCommandLine extends 
TestableCommandLine {
 
     Command.setAuthenticationMode(auth, userName);
 
-    if (CommandActions.DETAILS.equals(command)) {
-      if (line.hasOption(GravitinoOptions.AUDIT)) {
-        newUserAudit(url, ignore, metalake, user).handle();
-      } else {
-        newUserDetails(url, ignore, metalake, user).handle();
-      }
-    } else if (CommandActions.LIST.equals(command)) {
-      newListUsers(url, ignore, metalake).handle();
-    } else if (CommandActions.CREATE.equals(command)) {
-      newCreateUser(url, ignore, metalake, user).handle();
-    } else if (CommandActions.DELETE.equals(command)) {
-      boolean force = line.hasOption(GravitinoOptions.FORCE);
-      newDeleteUser(url, ignore, force, metalake, user).handle();
-    } else if (CommandActions.REVOKE.equals(command)) {
-      String[] roles = line.getOptionValues(GravitinoOptions.ROLE);
-      for (String role : roles) {
-        newRemoveRoleFromUser(url, ignore, metalake, user, role).handle();
-      }
-      System.out.printf("Remove roles %s from user %s%n", 
COMMA_JOINER.join(roles), user);
-    } else if (CommandActions.GRANT.equals(command)) {
-      String[] roles = line.getOptionValues(GravitinoOptions.ROLE);
-      for (String role : roles) {
-        newAddRoleToUser(url, ignore, metalake, user, role).handle();
-      }
-      System.out.printf("Grant roles %s to user %s%n", String.join(", ", 
roles), user);
-    } else {
-      System.err.println(ErrorMessages.UNSUPPORTED_ACTION);
+    switch (command) {
+      case CommandActions.DETAILS:
+        if (line.hasOption(GravitinoOptions.AUDIT)) {
+          newUserAudit(url, ignore, metalake, user).handle();
+        } else {
+          newUserDetails(url, ignore, metalake, user).handle();
+        }
+        break;
+
+      case CommandActions.LIST:
+        newListUsers(url, ignore, metalake).handle();
+        break;
+
+      case CommandActions.CREATE:
+        newCreateUser(url, ignore, metalake, user).handle();
+        break;
+
+      case CommandActions.DELETE:
+        boolean force = line.hasOption(GravitinoOptions.FORCE);
+        newDeleteUser(url, ignore, force, metalake, user).handle();
+        break;
+
+      case CommandActions.REVOKE:
+        String[] revokeRoles = line.getOptionValues(GravitinoOptions.ROLE);
+        for (String role : revokeRoles) {
+          newRemoveRoleFromUser(url, ignore, metalake, user, role).handle();
+        }
+        System.out.printf("Remove roles %s from user %s%n", 
COMMA_JOINER.join(revokeRoles), user);
+        break;
+
+      case CommandActions.GRANT:
+        String[] grantRoles = line.getOptionValues(GravitinoOptions.ROLE);
+        for (String role : grantRoles) {
+          newAddRoleToUser(url, ignore, metalake, user, role).handle();
+        }
+        System.out.printf("Grant roles %s to user %s%n", 
COMMA_JOINER.join(grantRoles), user);
+        break;
+
+      default:
+        System.err.println(ErrorMessages.UNSUPPORTED_COMMAND);
+        break;
     }
   }
 
@@ -437,33 +531,47 @@ public class GravitinoCommandLine extends 
TestableCommandLine {
 
     Command.setAuthenticationMode(auth, userName);
 
-    if (CommandActions.DETAILS.equals(command)) {
-      if (line.hasOption(GravitinoOptions.AUDIT)) {
-        newGroupAudit(url, ignore, metalake, group).handle();
-      } else {
-        newGroupDetails(url, ignore, metalake, group).handle();
-      }
-    } else if (CommandActions.LIST.equals(command)) {
-      newListGroups(url, ignore, metalake).handle();
-    } else if (CommandActions.CREATE.equals(command)) {
-      newCreateGroup(url, ignore, metalake, group).handle();
-    } else if (CommandActions.DELETE.equals(command)) {
-      boolean force = line.hasOption(GravitinoOptions.FORCE);
-      newDeleteGroup(url, ignore, force, metalake, group).handle();
-    } else if (CommandActions.REVOKE.equals(command)) {
-      String[] roles = line.getOptionValues(GravitinoOptions.ROLE);
-      for (String role : roles) {
-        newRemoveRoleFromGroup(url, ignore, metalake, group, role).handle();
-      }
-      System.out.printf("Remove roles %s from group %s%n", 
COMMA_JOINER.join(roles), group);
-    } else if (CommandActions.GRANT.equals(command)) {
-      String[] roles = line.getOptionValues(GravitinoOptions.ROLE);
-      for (String role : roles) {
-        newAddRoleToGroup(url, ignore, metalake, group, role).handle();
-      }
-      System.out.printf("Grant roles %s to group %s%n", 
COMMA_JOINER.join(roles), group);
-    } else {
-      System.err.println(ErrorMessages.UNSUPPORTED_ACTION);
+    switch (command) {
+      case CommandActions.DETAILS:
+        if (line.hasOption(GravitinoOptions.AUDIT)) {
+          newGroupAudit(url, ignore, metalake, group).handle();
+        } else {
+          newGroupDetails(url, ignore, metalake, group).handle();
+        }
+        break;
+
+      case CommandActions.LIST:
+        newListGroups(url, ignore, metalake).handle();
+        break;
+
+      case CommandActions.CREATE:
+        newCreateGroup(url, ignore, metalake, group).handle();
+        break;
+
+      case CommandActions.DELETE:
+        boolean force = line.hasOption(GravitinoOptions.FORCE);
+        newDeleteGroup(url, ignore, force, metalake, group).handle();
+        break;
+
+      case CommandActions.REVOKE:
+        String[] revokeRoles = line.getOptionValues(GravitinoOptions.ROLE);
+        for (String role : revokeRoles) {
+          newRemoveRoleFromGroup(url, ignore, metalake, group, role).handle();
+        }
+        System.out.printf("Remove roles %s from group %s%n", 
COMMA_JOINER.join(revokeRoles), group);
+        break;
+
+      case CommandActions.GRANT:
+        String[] grantRoles = line.getOptionValues(GravitinoOptions.ROLE);
+        for (String role : grantRoles) {
+          newAddRoleToGroup(url, ignore, metalake, group, role).handle();
+        }
+        System.out.printf("Grant roles %s to group %s%n", 
COMMA_JOINER.join(grantRoles), group);
+        break;
+
+      default:
+        System.err.println(ErrorMessages.UNSUPPORTED_ACTION);
+        break;
     }
   }
 
@@ -481,52 +589,73 @@ public class GravitinoCommandLine extends 
TestableCommandLine {
     if (tags != null) {
       tags = Arrays.stream(tags).distinct().toArray(String[]::new);
     }
-    if (CommandActions.DETAILS.equals(command)) {
-      newTagDetails(url, ignore, metalake, getOneTag(tags)).handle();
-    } else if (CommandActions.LIST.equals(command)) {
-      if (!name.hasCatalogName()) {
-        newListTags(url, ignore, metalake).handle();
-      } else {
-        newListEntityTags(url, ignore, metalake, name).handle();
-      }
-    } else if (CommandActions.CREATE.equals(command)) {
-      String comment = line.getOptionValue(GravitinoOptions.COMMENT);
-      newCreateTags(url, ignore, metalake, tags, comment).handle();
-    } else if (CommandActions.DELETE.equals(command)) {
-      boolean force = line.hasOption(GravitinoOptions.FORCE);
-      newDeleteTag(url, ignore, force, metalake, tags).handle();
-    } else if (CommandActions.SET.equals(command)) {
-      String property = line.getOptionValue(GravitinoOptions.PROPERTY);
-      String value = line.getOptionValue(GravitinoOptions.VALUE);
-      if (property != null && value != null) {
-        newSetTagProperty(url, ignore, metalake, getOneTag(tags), property, 
value).handle();
-      } else if (property == null && value == null) {
-        newTagEntity(url, ignore, metalake, name, tags).handle();
-      }
-    } else if (CommandActions.REMOVE.equals(command)) {
-      boolean isTag = line.hasOption(GravitinoOptions.TAG);
-      if (!isTag) {
-        boolean force = line.hasOption(GravitinoOptions.FORCE);
-        newRemoveAllTags(url, ignore, metalake, name, force).handle();
-      } else {
-        String property = line.getOptionValue(GravitinoOptions.PROPERTY);
-        if (property != null) {
-          newRemoveTagProperty(url, ignore, metalake, getOneTag(tags), 
property).handle();
+
+    switch (command) {
+      case CommandActions.DETAILS:
+        newTagDetails(url, ignore, metalake, getOneTag(tags)).handle();
+        break;
+
+      case CommandActions.LIST:
+        if (!name.hasCatalogName()) {
+          newListTags(url, ignore, metalake).handle();
         } else {
-          newUntagEntity(url, ignore, metalake, name, tags).handle();
+          newListEntityTags(url, ignore, metalake, name).handle();
         }
-      }
-    } else if (CommandActions.PROPERTIES.equals(command)) {
-      newListTagProperties(url, ignore, metalake, getOneTag(tags)).handle();
-    } else if (CommandActions.UPDATE.equals(command)) {
-      if (line.hasOption(GravitinoOptions.COMMENT)) {
+        break;
+
+      case CommandActions.CREATE:
         String comment = line.getOptionValue(GravitinoOptions.COMMENT);
-        newUpdateTagComment(url, ignore, metalake, getOneTag(tags), 
comment).handle();
-      }
-      if (line.hasOption(GravitinoOptions.RENAME)) {
-        String newName = line.getOptionValue(GravitinoOptions.RENAME);
-        newUpdateTagName(url, ignore, metalake, getOneTag(tags), 
newName).handle();
-      }
+        newCreateTags(url, ignore, metalake, tags, comment).handle();
+        break;
+
+      case CommandActions.DELETE:
+        boolean forceDelete = line.hasOption(GravitinoOptions.FORCE);
+        newDeleteTag(url, ignore, forceDelete, metalake, tags).handle();
+        break;
+
+      case CommandActions.SET:
+        String propertySet = line.getOptionValue(GravitinoOptions.PROPERTY);
+        String valueSet = line.getOptionValue(GravitinoOptions.VALUE);
+        if (propertySet != null && valueSet != null) {
+          newSetTagProperty(url, ignore, metalake, getOneTag(tags), 
propertySet, valueSet).handle();
+        } else if (propertySet == null && valueSet == null) {
+          newTagEntity(url, ignore, metalake, name, tags).handle();
+        }
+        break;
+
+      case CommandActions.REMOVE:
+        boolean isTag = line.hasOption(GravitinoOptions.TAG);
+        if (!isTag) {
+          boolean forceRemove = line.hasOption(GravitinoOptions.FORCE);
+          newRemoveAllTags(url, ignore, metalake, name, forceRemove).handle();
+        } else {
+          String propertyRemove = 
line.getOptionValue(GravitinoOptions.PROPERTY);
+          if (propertyRemove != null) {
+            newRemoveTagProperty(url, ignore, metalake, getOneTag(tags), 
propertyRemove).handle();
+          } else {
+            newUntagEntity(url, ignore, metalake, name, tags).handle();
+          }
+        }
+        break;
+
+      case CommandActions.PROPERTIES:
+        newListTagProperties(url, ignore, metalake, getOneTag(tags)).handle();
+        break;
+
+      case CommandActions.UPDATE:
+        if (line.hasOption(GravitinoOptions.COMMENT)) {
+          String updateComment = line.getOptionValue(GravitinoOptions.COMMENT);
+          newUpdateTagComment(url, ignore, metalake, getOneTag(tags), 
updateComment).handle();
+        }
+        if (line.hasOption(GravitinoOptions.RENAME)) {
+          String newName = line.getOptionValue(GravitinoOptions.RENAME);
+          newUpdateTagName(url, ignore, metalake, getOneTag(tags), 
newName).handle();
+        }
+        break;
+
+      default:
+        System.err.println(ErrorMessages.UNSUPPORTED_ACTION);
+        break;
     }
   }
 
@@ -546,19 +675,31 @@ public class GravitinoCommandLine extends 
TestableCommandLine {
 
     Command.setAuthenticationMode(auth, userName);
 
-    if (CommandActions.DETAILS.equals(command)) {
-      if (line.hasOption(GravitinoOptions.AUDIT)) {
-        newRoleAudit(url, ignore, metalake, role).handle();
-      } else {
-        newRoleDetails(url, ignore, metalake, role).handle();
-      }
-    } else if (CommandActions.LIST.equals(command)) {
-      newListRoles(url, ignore, metalake).handle();
-    } else if (CommandActions.CREATE.equals(command)) {
-      newCreateRole(url, ignore, metalake, role).handle();
-    } else if (CommandActions.DELETE.equals(command)) {
-      boolean force = line.hasOption(GravitinoOptions.FORCE);
-      newDeleteRole(url, ignore, force, metalake, role).handle();
+    switch (command) {
+      case CommandActions.DETAILS:
+        if (line.hasOption(GravitinoOptions.AUDIT)) {
+          newRoleAudit(url, ignore, metalake, role).handle();
+        } else {
+          newRoleDetails(url, ignore, metalake, role).handle();
+        }
+        break;
+
+      case CommandActions.LIST:
+        newListRoles(url, ignore, metalake).handle();
+        break;
+
+      case CommandActions.CREATE:
+        newCreateRole(url, ignore, metalake, role).handle();
+        break;
+
+      case CommandActions.DELETE:
+        boolean forceDelete = line.hasOption(GravitinoOptions.FORCE);
+        newDeleteRole(url, ignore, forceDelete, metalake, role).handle();
+        break;
+
+      default:
+        System.err.println(ErrorMessages.UNSUPPORTED_ACTION);
+        break;
     }
   }
 
@@ -584,90 +725,95 @@ public class GravitinoCommandLine extends 
TestableCommandLine {
 
     String column = name.getColumnName();
 
-    if (line.hasOption(GravitinoOptions.AUDIT)) {
-      newColumnAudit(url, ignore, metalake, catalog, schema, table, 
column).handle();
-      return;
-    }
-
-    if (CommandActions.CREATE.equals(command)) {
-      String datatype = line.getOptionValue(GravitinoOptions.DATATYPE);
-      String comment = line.getOptionValue(GravitinoOptions.COMMENT);
-      String position = line.getOptionValue(GravitinoOptions.POSITION);
-      boolean nullable = true;
-      boolean autoIncrement = false;
-      String defaultValue = line.getOptionValue(GravitinoOptions.DEFAULT);
-
-      if (line.hasOption(GravitinoOptions.NULL)) {
-        nullable = line.getOptionValue(GravitinoOptions.NULL).equals("true");
-      }
-
-      if (line.hasOption(GravitinoOptions.AUTO)) {
-        autoIncrement = 
line.getOptionValue(GravitinoOptions.AUTO).equals("true");
-      }
-
-      newAddColumn(
-              url,
-              ignore,
-              metalake,
-              catalog,
-              schema,
-              table,
-              column,
-              datatype,
-              comment,
-              position,
-              nullable,
-              autoIncrement,
-              defaultValue)
-          .handle();
-    } else if (CommandActions.DELETE.equals(command)) {
-      newDeleteColumn(url, ignore, metalake, catalog, schema, table, 
column).handle();
-    } else if (CommandActions.UPDATE.equals(command)) {
-      if (line.hasOption(GravitinoOptions.COMMENT)) {
-        String comment = line.getOptionValue(GravitinoOptions.COMMENT);
-        newUpdateColumnComment(url, ignore, metalake, catalog, schema, table, 
column, comment)
-            .handle();
-      }
-      if (line.hasOption(GravitinoOptions.RENAME)) {
-        String newName = line.getOptionValue(GravitinoOptions.RENAME);
-        newUpdateColumnName(url, ignore, metalake, catalog, schema, table, 
column, newName)
-            .handle();
-      }
-      if (line.hasOption(GravitinoOptions.DATATYPE)) {
-        String datatype = line.getOptionValue(GravitinoOptions.DATATYPE);
-        newUpdateColumnDatatype(url, ignore, metalake, catalog, schema, table, 
column, datatype)
-            .handle();
-      }
-      if (line.hasOption(GravitinoOptions.POSITION)) {
-        String position = line.getOptionValue(GravitinoOptions.POSITION);
-        newUpdateColumnPosition(url, ignore, metalake, catalog, schema, table, 
column, position)
-            .handle();
-      }
-      if (line.hasOption(GravitinoOptions.NULL)) {
-        if (line.getOptionValue(GravitinoOptions.NULL).equals("true")) {
-          newUpdateColumnNullability(url, ignore, metalake, catalog, schema, 
table, column, true)
-              .handle();
-        } else if (line.getOptionValue(GravitinoOptions.NULL).equals("false")) 
{
-          newUpdateColumnNullability(url, ignore, metalake, catalog, schema, 
table, column, false)
-              .handle();
+    switch (command) {
+      case CommandActions.DETAILS:
+        if (line.hasOption(GravitinoOptions.AUDIT)) {
+          newColumnAudit(url, ignore, metalake, catalog, schema, table, 
column).handle();
         }
-      }
-      if (line.hasOption(GravitinoOptions.AUTO)) {
-        if (line.getOptionValue(GravitinoOptions.AUTO).equals("true")) {
-          newUpdateColumnAutoIncrement(url, ignore, metalake, catalog, schema, 
table, column, true)
-              .handle();
-        } else if (line.getOptionValue(GravitinoOptions.AUTO).equals("false")) 
{
-          newUpdateColumnAutoIncrement(url, ignore, metalake, catalog, schema, 
table, column, false)
+        break;
+
+      case CommandActions.CREATE:
+        {
+          String datatype = line.getOptionValue(GravitinoOptions.DATATYPE);
+          String comment = line.getOptionValue(GravitinoOptions.COMMENT);
+          String position = line.getOptionValue(GravitinoOptions.POSITION);
+          boolean nullable =
+              !line.hasOption(GravitinoOptions.NULL)
+                  || line.getOptionValue(GravitinoOptions.NULL).equals("true");
+          boolean autoIncrement =
+              line.hasOption(GravitinoOptions.AUTO)
+                  && line.getOptionValue(GravitinoOptions.AUTO).equals("true");
+          String defaultValue = line.getOptionValue(GravitinoOptions.DEFAULT);
+
+          newAddColumn(
+                  url,
+                  ignore,
+                  metalake,
+                  catalog,
+                  schema,
+                  table,
+                  column,
+                  datatype,
+                  comment,
+                  position,
+                  nullable,
+                  autoIncrement,
+                  defaultValue)
               .handle();
+          break;
         }
-      }
-      if (line.hasOption(GravitinoOptions.DEFAULT)) {
-        String defaultValue = line.getOptionValue(GravitinoOptions.DEFAULT);
-        String dataType = line.getOptionValue(GravitinoOptions.DATATYPE);
-        newUpdateColumnDefault(
-                url, ignore, metalake, catalog, schema, table, column, 
defaultValue, dataType)
-            .handle();
-      }
+
+      case CommandActions.DELETE:
+        newDeleteColumn(url, ignore, metalake, catalog, schema, table, 
column).handle();
+        break;
+
+      case CommandActions.UPDATE:
+        {
+          if (line.hasOption(GravitinoOptions.COMMENT)) {
+            String comment = line.getOptionValue(GravitinoOptions.COMMENT);
+            newUpdateColumnComment(url, ignore, metalake, catalog, schema, 
table, column, comment)
+                .handle();
+          }
+          if (line.hasOption(GravitinoOptions.RENAME)) {
+            String newName = line.getOptionValue(GravitinoOptions.RENAME);
+            newUpdateColumnName(url, ignore, metalake, catalog, schema, table, 
column, newName)
+                .handle();
+          }
+          if (line.hasOption(GravitinoOptions.DATATYPE)) {
+            String datatype = line.getOptionValue(GravitinoOptions.DATATYPE);
+            newUpdateColumnDatatype(url, ignore, metalake, catalog, schema, 
table, column, datatype)
+                .handle();
+          }
+          if (line.hasOption(GravitinoOptions.POSITION)) {
+            String position = line.getOptionValue(GravitinoOptions.POSITION);
+            newUpdateColumnPosition(url, ignore, metalake, catalog, schema, 
table, column, position)
+                .handle();
+          }
+          if (line.hasOption(GravitinoOptions.NULL)) {
+            boolean nullable = 
line.getOptionValue(GravitinoOptions.NULL).equals("true");
+            newUpdateColumnNullability(
+                    url, ignore, metalake, catalog, schema, table, column, 
nullable)
+                .handle();
+          }
+          if (line.hasOption(GravitinoOptions.AUTO)) {
+            boolean autoIncrement = 
line.getOptionValue(GravitinoOptions.AUTO).equals("true");
+            newUpdateColumnAutoIncrement(
+                    url, ignore, metalake, catalog, schema, table, column, 
autoIncrement)
+                .handle();
+          }
+          if (line.hasOption(GravitinoOptions.DEFAULT)) {
+            String defaultValue = 
line.getOptionValue(GravitinoOptions.DEFAULT);
+            String dataType = line.getOptionValue(GravitinoOptions.DATATYPE);
+            newUpdateColumnDefault(
+                    url, ignore, metalake, catalog, schema, table, column, 
defaultValue, dataType)
+                .handle();
+          }
+          break;
+        }
+
+      default:
+        System.err.println(ErrorMessages.UNSUPPORTED_ACTION);
+        break;
     }
   }
 
@@ -701,21 +847,29 @@ public class GravitinoCommandLine extends 
TestableCommandLine {
 
     Command.setAuthenticationMode(auth, userName);
 
-    if (CommandActions.DETAILS.equals(command)) {
-      newOwnerDetails(url, ignore, metalake, entityName, entity).handle();
-    } else if (CommandActions.SET.equals(command)) {
-      String owner = line.getOptionValue(GravitinoOptions.USER);
-      String group = line.getOptionValue(GravitinoOptions.GROUP);
-
-      if (owner != null && group == null) {
-        newSetOwner(url, ignore, metalake, entityName, entity, owner, 
false).handle();
-      } else if (owner == null && group != null) {
-        newSetOwner(url, ignore, metalake, entityName, entity, group, 
true).handle();
-      } else {
-        System.err.println(ErrorMessages.INVALID_SET_COMMAND);
-      }
-    } else {
-      System.err.println(ErrorMessages.UNSUPPORTED_ACTION);
+    switch (command) {
+      case CommandActions.DETAILS:
+        newOwnerDetails(url, ignore, metalake, entityName, entity).handle();
+        break;
+
+      case CommandActions.SET:
+        {
+          String owner = line.getOptionValue(GravitinoOptions.USER);
+          String group = line.getOptionValue(GravitinoOptions.GROUP);
+
+          if (owner != null && group == null) {
+            newSetOwner(url, ignore, metalake, entityName, entity, owner, 
false).handle();
+          } else if (owner == null && group != null) {
+            newSetOwner(url, ignore, metalake, entityName, entity, group, 
true).handle();
+          } else {
+            System.err.println(ErrorMessages.INVALID_SET_COMMAND);
+          }
+          break;
+        }
+
+      default:
+        System.err.println(ErrorMessages.UNSUPPORTED_ACTION);
+        break;
     }
   }
 
@@ -734,30 +888,61 @@ public class GravitinoCommandLine extends 
TestableCommandLine {
 
     Command.setAuthenticationMode(auth, userName);
 
-    if (CommandActions.LIST.equals(command)) {
-      newListTopics(url, ignore, metalake, catalog, schema).handle();
-    } else if (CommandActions.DETAILS.equals(command)) {
-      newTopicDetails(url, ignore, metalake, catalog, schema, topic).handle();
-    } else if (CommandActions.CREATE.equals(command)) {
-      String comment = line.getOptionValue(GravitinoOptions.COMMENT);
-      newCreateTopic(url, ignore, metalake, catalog, schema, topic, 
comment).handle();
-    } else if (CommandActions.DELETE.equals(command)) {
-      boolean force = line.hasOption(GravitinoOptions.FORCE);
-      newDeleteTopic(url, ignore, force, metalake, catalog, schema, 
topic).handle();
-    } else if (CommandActions.UPDATE.equals(command)) {
-      if (line.hasOption(GravitinoOptions.COMMENT)) {
-        String comment = line.getOptionValue(GravitinoOptions.COMMENT);
-        newUpdateTopicComment(url, ignore, metalake, catalog, schema, topic, 
comment).handle();
-      }
-    } else if (CommandActions.SET.equals(command)) {
-      String property = line.getOptionValue(GravitinoOptions.PROPERTY);
-      String value = line.getOptionValue(GravitinoOptions.VALUE);
-      newSetTopicProperty(url, ignore, metalake, catalog, schema, topic, 
property, value).handle();
-    } else if (CommandActions.REMOVE.equals(command)) {
-      String property = line.getOptionValue(GravitinoOptions.PROPERTY);
-      newRemoveTopicProperty(url, ignore, metalake, catalog, schema, topic, 
property).handle();
-    } else if (CommandActions.PROPERTIES.equals(command)) {
-      newListTopicProperties(url, ignore, metalake, catalog, schema, 
topic).handle();
+    switch (command) {
+      case CommandActions.LIST:
+        newListTopics(url, ignore, metalake, catalog, schema).handle();
+        break;
+
+      case CommandActions.DETAILS:
+        newTopicDetails(url, ignore, metalake, catalog, schema, 
topic).handle();
+        break;
+
+      case CommandActions.CREATE:
+        {
+          String comment = line.getOptionValue(GravitinoOptions.COMMENT);
+          newCreateTopic(url, ignore, metalake, catalog, schema, topic, 
comment).handle();
+          break;
+        }
+
+      case CommandActions.DELETE:
+        {
+          boolean force = line.hasOption(GravitinoOptions.FORCE);
+          newDeleteTopic(url, ignore, force, metalake, catalog, schema, 
topic).handle();
+          break;
+        }
+
+      case CommandActions.UPDATE:
+        {
+          if (line.hasOption(GravitinoOptions.COMMENT)) {
+            String comment = line.getOptionValue(GravitinoOptions.COMMENT);
+            newUpdateTopicComment(url, ignore, metalake, catalog, schema, 
topic, comment).handle();
+          }
+          break;
+        }
+
+      case CommandActions.SET:
+        {
+          String property = line.getOptionValue(GravitinoOptions.PROPERTY);
+          String value = line.getOptionValue(GravitinoOptions.VALUE);
+          newSetTopicProperty(url, ignore, metalake, catalog, schema, topic, 
property, value)
+              .handle();
+          break;
+        }
+
+      case CommandActions.REMOVE:
+        {
+          String property = line.getOptionValue(GravitinoOptions.PROPERTY);
+          newRemoveTopicProperty(url, ignore, metalake, catalog, schema, 
topic, property).handle();
+          break;
+        }
+
+      case CommandActions.PROPERTIES:
+        newListTopicProperties(url, ignore, metalake, catalog, schema, 
topic).handle();
+        break;
+
+      default:
+        System.err.println(ErrorMessages.UNSUPPORTED_ACTION);
+        break;
     }
   }
 
@@ -776,38 +961,70 @@ public class GravitinoCommandLine extends 
TestableCommandLine {
 
     Command.setAuthenticationMode(auth, userName);
 
-    if (CommandActions.DETAILS.equals(command)) {
-      newFilesetDetails(url, ignore, metalake, catalog, schema, 
fileset).handle();
-    } else if (CommandActions.LIST.equals(command)) {
-      newListFilesets(url, ignore, metalake, catalog, schema).handle();
-    } else if (CommandActions.CREATE.equals(command)) {
-      String comment = line.getOptionValue(GravitinoOptions.COMMENT);
-      String[] properties = line.getOptionValues(GravitinoOptions.PROPERTIES);
-      Map<String, String> propertyMap = new Properties().parse(properties);
-      newCreateFileset(url, ignore, metalake, catalog, schema, fileset, 
comment, propertyMap)
-          .handle();
-    } else if (CommandActions.DELETE.equals(command)) {
-      boolean force = line.hasOption(GravitinoOptions.FORCE);
-      newDeleteFileset(url, ignore, force, metalake, catalog, schema, 
fileset).handle();
-    } else if (CommandActions.SET.equals(command)) {
-      String property = line.getOptionValue(GravitinoOptions.PROPERTY);
-      String value = line.getOptionValue(GravitinoOptions.VALUE);
-      newSetFilesetProperty(url, ignore, metalake, catalog, schema, fileset, 
property, value)
-          .handle();
-    } else if (CommandActions.REMOVE.equals(command)) {
-      String property = line.getOptionValue(GravitinoOptions.PROPERTY);
-      newRemoveFilesetProperty(url, ignore, metalake, catalog, schema, 
fileset, property).handle();
-    } else if (CommandActions.PROPERTIES.equals(command)) {
-      newListFilesetProperties(url, ignore, metalake, catalog, schema, 
fileset).handle();
-    } else if (CommandActions.UPDATE.equals(command)) {
-      if (line.hasOption(GravitinoOptions.COMMENT)) {
-        String comment = line.getOptionValue(GravitinoOptions.COMMENT);
-        newUpdateFilesetComment(url, ignore, metalake, catalog, schema, 
fileset, comment).handle();
-      }
-      if (line.hasOption(GravitinoOptions.RENAME)) {
-        String newName = line.getOptionValue(GravitinoOptions.RENAME);
-        newUpdateFilesetName(url, ignore, metalake, catalog, schema, fileset, 
newName).handle();
-      }
+    switch (command) {
+      case CommandActions.DETAILS:
+        newFilesetDetails(url, ignore, metalake, catalog, schema, 
fileset).handle();
+        break;
+
+      case CommandActions.LIST:
+        newListFilesets(url, ignore, metalake, catalog, schema).handle();
+        break;
+
+      case CommandActions.CREATE:
+        {
+          String comment = line.getOptionValue(GravitinoOptions.COMMENT);
+          String[] properties = 
line.getOptionValues(CommandActions.PROPERTIES);
+          Map<String, String> propertyMap = new Properties().parse(properties);
+          newCreateFileset(url, ignore, metalake, catalog, schema, fileset, 
comment, propertyMap)
+              .handle();
+          break;
+        }
+
+      case CommandActions.DELETE:
+        {
+          boolean force = line.hasOption(GravitinoOptions.FORCE);
+          newDeleteFileset(url, ignore, force, metalake, catalog, schema, 
fileset).handle();
+          break;
+        }
+
+      case CommandActions.SET:
+        {
+          String property = line.getOptionValue(GravitinoOptions.PROPERTY);
+          String value = line.getOptionValue(GravitinoOptions.VALUE);
+          newSetFilesetProperty(url, ignore, metalake, catalog, schema, 
fileset, property, value)
+              .handle();
+          break;
+        }
+
+      case CommandActions.REMOVE:
+        {
+          String property = line.getOptionValue(GravitinoOptions.PROPERTY);
+          newRemoveFilesetProperty(url, ignore, metalake, catalog, schema, 
fileset, property)
+              .handle();
+          break;
+        }
+
+      case CommandActions.PROPERTIES:
+        newListFilesetProperties(url, ignore, metalake, catalog, schema, 
fileset).handle();
+        break;
+
+      case CommandActions.UPDATE:
+        {
+          if (line.hasOption(GravitinoOptions.COMMENT)) {
+            String comment = line.getOptionValue(GravitinoOptions.COMMENT);
+            newUpdateFilesetComment(url, ignore, metalake, catalog, schema, 
fileset, comment)
+                .handle();
+          }
+          if (line.hasOption(GravitinoOptions.RENAME)) {
+            String newName = line.getOptionValue(GravitinoOptions.RENAME);
+            newUpdateFilesetName(url, ignore, metalake, catalog, schema, 
fileset, newName).handle();
+          }
+          break;
+        }
+
+      default:
+        System.err.println(ErrorMessages.UNSUPPORTED_ACTION);
+        break;
     }
   }
 

Reply via email to