001package gudusoft.gsqlparser.dlineage.metadata; 002 003import java.util.List; 004 005import gudusoft.gsqlparser.dlineage.dataflow.model.ModelBindingManager; 006import gudusoft.gsqlparser.sqlenv.TSQLEnv; 007import gudusoft.gsqlparser.util.json.JSONField; 008 009public class Table extends TreeNode { 010 011 private String dbLink; 012 private String name; 013 private String displayName; 014 private String type; 015 private String alias; 016 private String subType; 017 private List<Column> columns; 018 private Coordinate[] coordinates; 019 private String fromDDL; 020 private String databaseName; 021 private String schemaName; 022 023 public String getName() { 024 return name; 025 } 026 027 public void setName(String name) { 028 this.name = name; 029 } 030 031 public List<Column> getColumns() { 032 return columns; 033 } 034 035 public void setColumns(List<Column> columns) { 036 this.columns = columns; 037 } 038 039 public String getType() { 040 return type; 041 } 042 043 public void setType(String type) { 044 this.type = type; 045 } 046 047 public String getDbLink() { 048 return dbLink; 049 } 050 051 public void setDbLink(String dbLink) { 052 this.dbLink = dbLink; 053 } 054 055 public String getDisplayName() { 056 return displayName; 057 } 058 059 public void setDisplayName(String displayName) { 060 this.displayName = displayName; 061 } 062 063 public String getSubType() { 064 return subType; 065 } 066 067 public void setSubType(String subType) { 068 this.subType = subType; 069 } 070 071 public String getAlias() { 072 return alias; 073 } 074 075 public void setAlias(String alias) { 076 this.alias = alias; 077 } 078 079 @JSONField(serialize = false) 080 public Database getDatabase() { 081 TreeNode parent = getParent(); 082 Server server = getServer(); 083 if (parent == null || server == null) { 084 return null; 085 } 086 if (server.isSupportsCatalogs() && server.isSupportsSchemas()) { 087 return (Database) parent.getParent(); 088 } else if (server.isSupportsCatalogs()) { 089 return (Database) parent; 090 } 091 return null; 092 } 093 094 @JSONField(serialize = false) 095 public Schema getSchema() { 096 TreeNode parent = getParent(); 097 Server server = getServer(); 098 if (parent == null || server == null) { 099 return null; 100 } 101 if (server.isSupportsSchemas()) { 102 return (Schema) parent; 103 } 104 return null; 105 } 106 107 @JSONField(serialize = false) 108 public String fullName() { 109 TreeNode parent = getParent(); 110 Server server = getServer(); 111 if (parent == null || server == null) { 112 return name; 113 } else { 114 StringBuilder builder = new StringBuilder(); 115 if (server.isSupportsCatalogs() && server.isSupportsSchemas()) { 116 if (!TSQLEnv.DEFAULT_DB_NAME.equalsIgnoreCase(getDatabase().getName())) { 117 builder.append(getDatabase().getName()).append("."); 118 } 119 if (builder.length() > 0 || !TSQLEnv.DEFAULT_SCHEMA_NAME.equalsIgnoreCase(getSchema().getName())) { 120 builder.append(getSchema().getName()).append("."); 121 } 122 builder.append(getName()); 123 } else if (server.isSupportsSchemas()) { 124 if (!TSQLEnv.DEFAULT_SCHEMA_NAME.equalsIgnoreCase(getSchema().getName())) { 125 builder.append(getSchema().getName()).append("."); 126 } 127 builder.append(getName()); 128 } else if (server.isSupportsCatalogs()) { 129 if (!TSQLEnv.DEFAULT_DB_NAME.equalsIgnoreCase(getDatabase().getName())) { 130 builder.append(getDatabase().getName()).append("."); 131 } 132 builder.append(getName()); 133 } else { 134 builder.append(getName()); 135 } 136 return builder.toString(); 137 } 138 } 139 140 public Coordinate[] getCoordinates() { 141 if (ModelBindingManager.getGlobalOption() != null 142 && ModelBindingManager.getGlobalOption().isIgnoreCoordinate()) { 143 return null; 144 } 145 return coordinates; 146 } 147 148 public void setCoordinates(Coordinate[] coordinates) { 149 if (ModelBindingManager.getGlobalOption() != null 150 && ModelBindingManager.getGlobalOption().isIgnoreCoordinate()) { 151 return; 152 } 153 this.coordinates = coordinates; 154 } 155 156 public String getFromDDL() { 157 return fromDDL; 158 } 159 160 public void setFromDDL(String fromDDL) { 161 this.fromDDL = fromDDL; 162 } 163 164 public String getDatabaseName() { 165 return databaseName; 166 } 167 168 public void setDatabaseName(String databaseName) { 169 this.databaseName = databaseName; 170 } 171 172 public String getSchemaName() { 173 return schemaName; 174 } 175 176 public void setSchemaName(String schemaName) { 177 this.schemaName = schemaName; 178 } 179}