public void handle()

in clients/cli/src/main/java/org/apache/gravitino/cli/commands/RemoveAllTags.java [65:158]


  public void handle() {
    if (!AreYouSure.really(force)) {
      return;
    }
    String entity = "unknown";
    String[] tags = new String[0];
    try {

      GravitinoClient client = buildClient(metalake);

      if (name.getLevel() == 3) {
        String catalog = name.getCatalogName();
        Catalog catalogObject = client.loadCatalog(catalog);
        switch (catalogObject.type()) {
          case RELATIONAL:
            entity = "table";
            TableCatalog tableCatalog = catalogObject.asTableCatalog();
            Table gTable = tableCatalog.loadTable(FullNameUtil.toTable(name));
            tags = gTable.supportsTags().listTags();
            if (tags.length > 0) {
              gTable.supportsTags().associateTags(null, tags);
            }
            break;

          case MODEL:
            entity = "model";
            ModelCatalog modelCatalog = catalogObject.asModelCatalog();
            Model gModel = modelCatalog.getModel(FullNameUtil.toModel(name));
            tags = gModel.supportsTags().listTags();
            if (tags.length > 0) {
              gModel.supportsTags().associateTags(null, tags);
            }
            break;

          case FILESET:
            entity = "fileset";
            FilesetCatalog filesetCatalog = catalogObject.asFilesetCatalog();
            Fileset gFileset = filesetCatalog.loadFileset(FullNameUtil.toFileset(name));
            tags = gFileset.supportsTags().listTags();
            if (tags.length > 0) {
              gFileset.supportsTags().associateTags(null, tags);
            }
            break;

          case MESSAGING:
            entity = "topic";
            TopicCatalog topicCatalog = catalogObject.asTopicCatalog();
            Topic gTopic = topicCatalog.loadTopic(FullNameUtil.toTopic(name));
            tags = gTopic.supportsTags().listTags();
            if (tags.length > 0) {
              gTopic.supportsTags().associateTags(null, tags);
            }
            break;

          default:
            break;
        }
      } else if (name.hasSchemaName()) {
        String catalog = name.getCatalogName();
        String schema = name.getSchemaName();
        Schema gSchema = client.loadCatalog(catalog).asSchemas().loadSchema(schema);
        tags = gSchema.supportsTags().listTags();
        if (tags.length > 0) {
          gSchema.supportsTags().associateTags(null, tags);
        }
        entity = schema;
      } else if (name.hasCatalogName()) {
        String catalog = name.getCatalogName();
        Catalog gCatalog = client.loadCatalog(catalog);
        tags = gCatalog.supportsTags().listTags();
        if (tags.length > 0) {
          gCatalog.supportsTags().associateTags(null, tags);
        }
        entity = catalog;
      }
    } catch (NoSuchMetalakeException err) {
      exitWithError(ErrorMessages.UNKNOWN_METALAKE);
    } catch (NoSuchCatalogException err) {
      exitWithError(ErrorMessages.UNKNOWN_CATALOG);
    } catch (NoSuchSchemaException err) {
      exitWithError(ErrorMessages.UNKNOWN_SCHEMA);
    } catch (NoSuchTableException err) {
      exitWithError(ErrorMessages.UNKNOWN_TABLE);
    } catch (Exception exp) {
      exitWithError(exp.getMessage());
    }

    if (tags.length > 0) {
      printInformation(
          entity + " removed tags " + String.join(",", tags) + " now tagged with nothing");
    } else {
      printInformation(entity + " has no tags");
    }
  }