001package gudusoft.gsqlparser.resolver2.result; 002 003/** 004 * Table query filter options for IResolutionResult.getTables() 005 */ 006public class TableFilterOptions { 007 008 /** Whether to include subqueries */ 009 private boolean includeSubqueries = false; 010 011 /** Whether to include CTE references */ 012 private boolean includeCTEs = false; 013 014 /** Whether to return only physical tables */ 015 private boolean physicalTablesOnly = false; 016 017 /** Whether to include function tables */ 018 private boolean includeFunctionTables = false; 019 020 // Predefined options 021 public static final TableFilterOptions DEFAULT = new TableFilterOptions(); 022 023 public static final TableFilterOptions ALL = new TableFilterOptions() 024 .setIncludeSubqueries(true) 025 .setIncludeCTEs(true) 026 .setIncludeFunctionTables(true); 027 028 public static final TableFilterOptions PHYSICAL_ONLY = new TableFilterOptions() 029 .setPhysicalTablesOnly(true); 030 031 // Builder-style setters 032 public TableFilterOptions setIncludeSubqueries(boolean include) { 033 this.includeSubqueries = include; 034 return this; 035 } 036 037 public TableFilterOptions setIncludeCTEs(boolean include) { 038 this.includeCTEs = include; 039 return this; 040 } 041 042 public TableFilterOptions setPhysicalTablesOnly(boolean physicalOnly) { 043 this.physicalTablesOnly = physicalOnly; 044 return this; 045 } 046 047 public TableFilterOptions setIncludeFunctionTables(boolean include) { 048 this.includeFunctionTables = include; 049 return this; 050 } 051 052 // Getters 053 public boolean isIncludeSubqueries() { return includeSubqueries; } 054 public boolean isIncludeCTEs() { return includeCTEs; } 055 public boolean isPhysicalTablesOnly() { return physicalTablesOnly; } 056 public boolean isIncludeFunctionTables() { return includeFunctionTables; } 057}