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 021 public String getName() { 022 return name; 023 } 024 025 public void setName(String name) { 026 this.name = name; 027 } 028 029 public List<Column> getColumns() { 030 return columns; 031 } 032 033 public void setColumns(List<Column> columns) { 034 this.columns = columns; 035 } 036 037 public String getType() { 038 return type; 039 } 040 041 public void setType(String type) { 042 this.type = type; 043 } 044 045 public String getDbLink() { 046 return dbLink; 047 } 048 049 public void setDbLink(String dbLink) { 050 this.dbLink = dbLink; 051 } 052 053 public String getDisplayName() { 054 return displayName; 055 } 056 057 public void setDisplayName(String displayName) { 058 this.displayName = displayName; 059 } 060 061 public String getSubType() { 062 return subType; 063 } 064 065 public void setSubType(String subType) { 066 this.subType = subType; 067 } 068 069 public String getAlias() { 070 return alias; 071 } 072 073 public void setAlias(String alias) { 074 this.alias = alias; 075 } 076 077 @JSONField(serialize = false) 078 public Database getDatabase() { 079 TreeNode parent = getParent(); 080 Server server = getServer(); 081 if (parent == null || server == null) { 082 return null; 083 } 084 if (server.isSupportsCatalogs() && server.isSupportsSchemas()) { 085 return (Database) parent.getParent(); 086 } else if (server.isSupportsCatalogs()) { 087 return (Database) parent; 088 } 089 return null; 090 } 091 092 @JSONField(serialize = false) 093 public Schema getSchema() { 094 TreeNode parent = getParent(); 095 Server server = getServer(); 096 if (parent == null || server == null) { 097 return null; 098 } 099 if (server.isSupportsSchemas()) { 100 return (Schema) parent; 101 } 102 return null; 103 } 104 105 @JSONField(serialize = false) 106 public String fullName() { 107 TreeNode parent = getParent(); 108 Server server = getServer(); 109 if (parent == null || server == null) { 110 return name; 111 } else { 112 StringBuilder builder = new StringBuilder(); 113 if (server.isSupportsCatalogs() && server.isSupportsSchemas()) { 114 if (!TSQLEnv.DEFAULT_DB_NAME.equalsIgnoreCase(getDatabase().getName())) { 115 builder.append(getDatabase().getName()).append("."); 116 } 117 if (builder.length() > 0 || !TSQLEnv.DEFAULT_SCHEMA_NAME.equalsIgnoreCase(getSchema().getName())) { 118 builder.append(getSchema().getName()).append("."); 119 } 120 builder.append(getName()); 121 } else if (server.isSupportsSchemas()) { 122 if (!TSQLEnv.DEFAULT_SCHEMA_NAME.equalsIgnoreCase(getSchema().getName())) { 123 builder.append(getSchema().getName()).append("."); 124 } 125 builder.append(getName()); 126 } else if (server.isSupportsCatalogs()) { 127 if (!TSQLEnv.DEFAULT_DB_NAME.equalsIgnoreCase(getDatabase().getName())) { 128 builder.append(getDatabase().getName()).append("."); 129 } 130 builder.append(getName()); 131 } else { 132 builder.append(getName()); 133 } 134 return builder.toString(); 135 } 136 } 137 138 public Coordinate[] getCoordinates() { 139 if (ModelBindingManager.getGlobalOption() != null 140 && ModelBindingManager.getGlobalOption().isIgnoreCoordinate()) { 141 return null; 142 } 143 return coordinates; 144 } 145 146 public void setCoordinates(Coordinate[] coordinates) { 147 if (ModelBindingManager.getGlobalOption() != null 148 && ModelBindingManager.getGlobalOption().isIgnoreCoordinate()) { 149 return; 150 } 151 this.coordinates = coordinates; 152 } 153 154 public String getFromDDL() { 155 return fromDDL; 156 } 157 158 public void setFromDDL(String fromDDL) { 159 this.fromDDL = fromDDL; 160 } 161}