private static List getResourcePathExpressionFromParseTree()

in zetasql-toolkit-core/src/main/java/com/google/zetasql/toolkit/StatementRewriter.java [169:539]


  private static List<ASTPathExpression> getResourcePathExpressionFromParseTree(ASTNode tree) {
    ArrayList<ASTPathExpression> result = new ArrayList<>();

    tree.accept(
        new ParseTreeVisitor() {

          public void visit(ASTTablePathExpression node) {
            if (Objects.nonNull(node.getPathExpr())) {
              result.add(node.getPathExpr());
            }
            super.visit(node);
          }

          public void visit(ASTFunctionCall node) {
            result.add(node.getFunction());
            super.visit(node);
          }

          public void visit(ASTSequenceArg node) {
            result.add(node.getSequencePath());
          }

          public void visit(ASTDescribeStatement node) {
            result.add(node.getName());
            if (node.getOptionalFromName() != null) {
              result.add(node.getOptionalFromName());
            }
            super.visit(node);
          }

          public void visit(ASTShowStatement node) {
            result.add(node.getOptionalName());
            super.visit(node);
          }

          public void visit(ASTDropEntityStatement node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTDropFunctionStatement node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTDropTableFunctionStatement node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTDropAllRowAccessPoliciesStatement node) {
            result.add(node.getTableName());
            super.visit(node);
          }

          public void visit(ASTDropMaterializedViewStatement node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTDropSnapshotTableStatement node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTDropSearchIndexStatement node) {
            result.add(node.getName());
            result.add(node.getTableName());
            super.visit(node);
          }

          public void visit(ASTDropVectorIndexStatement node) {
            result.add(node.getName());
            result.add(node.getTableName());
            super.visit(node);
          }

          public void visit(ASTRenameStatement node) {
            result.add(node.getOldName());
            result.add(node.getNewName());
            super.visit(node);
          }

          public void visit(ASTImportStatement node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTModuleStatement node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTSystemVariableExpr node) {
            result.add(node.getPath());
          }

          public void visit(ASTFunctionDeclaration node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTTVF node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTTableClause node) {
            result.add(node.getTablePath());
            super.visit(node);
          }

          public void visit(ASTModelClause node) {
            result.add(node.getModelPath());
          }

          public void visit(ASTConnectionClause node) {
            result.add(node.getConnectionPath());
          }

          public void visit(ASTCloneDataSource node) {
            result.add(node.getPathExpr());
            super.visit(node);
          }

          public void visit(ASTCopyDataSource node) {
            result.add(node.getPathExpr());
            super.visit(node);
          }

          public void visit(ASTCloneDataStatement node) {
            result.add(node.getTargetPath());
            super.visit(node);
          }

          public void visit(ASTCreateConstantStatement node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTCreateDatabaseStatement node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTCreateProcedureStatement node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTCreateSchemaStatement node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTCreateModelStatement node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTCreateIndexStatement node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTExportModelStatement node) {
            result.add(node.getModelNamePath());
            super.visit(node);
          }

          public void visit(ASTExportMetadataStatement node) {
            result.add(node.getNamePath());
            super.visit(node);
          }

          public void visit(ASTCallStatement node) {
            result.add(node.getProcedureName());
            super.visit(node);
          }

          public void visit(ASTDefineTableStatement node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTCreateSnapshotStatement node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTCreateSnapshotTableStatement node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTTableAndColumnInfo node) {
            result.add(node.getTableName());
            super.visit(node);
          }

          public void visit(ASTTruncateStatement node) {
            result.add(node.getTargetPath());
            super.visit(node);
          }

          public void visit(ASTMergeStatement node) {
            result.add(node.getTargetPath());
            super.visit(node);
          }

          public void visit(ASTGrantStatement node) {
            result.add(node.getTargetPath());
            super.visit(node);
          }

          public void visit(ASTRevokeStatement node) {
            result.add(node.getTargetPath());
            super.visit(node);
          }

          public void visit(ASTRenameToClause node) {
            result.add(node.getNewName());
            super.visit(node);
          }

          public void visit(ASTAlterAllRowAccessPoliciesStatement node) {
            result.add(node.getTableNamePath());
            super.visit(node);
          }

          public void visit(ASTForeignKeyReference node) {
            result.add(node.getTableName());
            super.visit(node);
          }

          public void visit(ASTCreateEntityStatement node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTDropPrivilegeRestrictionStatement node) {
            result.add(node.getNamePath());
            super.visit(node);
          }

          public void visit(ASTDropRowAccessPolicyStatement node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTCreatePrivilegeRestrictionStatement node) {
            result.add(node.getNamePath());
            super.visit(node);
          }

          public void visit(ASTCreateRowAccessPolicyStatement node) {
            result.add(node.getName());
            result.add(node.getTargetPath());
            super.visit(node);
          }

          public void visit(ASTDropStatement node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTCreateTableStatement node) {
            result.add(node.getName());
            if (node.getLikeTableName() != null) {
              result.add(node.getLikeTableName());
            }
            super.visit(node);
          }

          public void visit(ASTCreateExternalTableStatement node) {
            result.add(node.getName());
            if (node.getLikeTableName() != null) {
              result.add(node.getLikeTableName());
            }
            super.visit(node);
          }

          public void visit(ASTAuxLoadDataStatement node) {
            result.add(node.getName());
            if (node.getLikeTableName() != null) {
              result.add(node.getLikeTableName());
            }
            super.visit(node);
          }

          public void visit(ASTCreateViewStatement node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTCreateApproxViewStatement node) {
            result.add(node.getName());
            super.visit(node);
          }

          public void visit(ASTCreateMaterializedViewStatement node) {
            result.add(node.getName());
            if (node.getReplicaSource() != null) {
              result.add(node.getReplicaSource());
            }
            super.visit(node);
          }

          public void visit(ASTAlterDatabaseStatement node) {
            result.add(node.getPath());
            super.visit(node);
          }

          public void visit(ASTAlterSchemaStatement node) {
            result.add(node.getPath());
            super.visit(node);
          }

          public void visit(ASTAlterTableStatement node) {
            result.add(node.getPath());
            super.visit(node);
          }

          public void visit(ASTAlterViewStatement node) {
            result.add(node.getPath());
            super.visit(node);
          }

          public void visit(ASTAlterMaterializedViewStatement node) {
            result.add(node.getPath());
            super.visit(node);
          }

          public void visit(ASTAlterApproxViewStatement node) {
            result.add(node.getPath());
            super.visit(node);
          }

          public void visit(ASTAlterModelStatement node) {
            result.add(node.getPath());
            super.visit(node);
          }

          public void visit(ASTAlterPrivilegeRestrictionStatement node) {
            result.add(node.getPath());
            super.visit(node);
          }

          public void visit(ASTAlterRowAccessPolicyStatement node) {
            result.add(node.getPath());
            super.visit(node);
          }

          public void visit(ASTAlterEntityStatement node) {
            result.add(node.getPath());
            super.visit(node);
          }

          public void visit(ASTSpannerInterleaveClause node) {
            result.add(node.getTableName());
            super.visit(node);
          }

          public void visit(ASTUndropStatement node) {
            result.add(node.getName());
            super.visit(node);
          }
        });

    return result;
  }