001package gudusoft.gsqlparser.dlineage.metadata; 002 003import java.util.ArrayList; 004import java.util.List; 005 006import gudusoft.gsqlparser.EDbVendor; 007import gudusoft.gsqlparser.sqlenv.ESQLDataObjectType; 008import gudusoft.gsqlparser.sqlenv.TSQLEnv; 009import gudusoft.gsqlparser.util.SQLUtil; 010 011public class Server { 012 013 private String name; 014 private String dbVendor; 015 private boolean supportsCatalogs; 016 private boolean supportsSchemas; 017 private List<Database> databases; 018 private List<Schema> schemas; 019 private List<DBLink> dbLinks; 020 private List<Query> queries; 021 022 public String getDbVendor() { 023 return dbVendor; 024 } 025 026 public void setDbVendor(String dbVendor) { 027 this.dbVendor = dbVendor; 028 EDbVendor vendor = EDbVendor.valueOf(dbVendor); 029 this.supportsCatalogs = TSQLEnv.supportCatalog(vendor); 030 this.supportsSchemas = TSQLEnv.supportSchema(vendor); 031 } 032 033 public String getName() { 034 return name; 035 } 036 037 public void setName(String name) { 038 this.name = name; 039 } 040 041 public boolean isSupportsCatalogs() { 042 return supportsCatalogs; 043 } 044 045 public void setSupportsCatalogs(boolean supportsCatalogs) { 046 this.supportsCatalogs = supportsCatalogs; 047 } 048 049 public boolean isSupportsSchemas() { 050 return supportsSchemas; 051 } 052 053 public void setSupportsSchemas(boolean supportsSchemas) { 054 this.supportsSchemas = supportsSchemas; 055 } 056 057 public List<Database> getDatabases() { 058 return databases; 059 } 060 061 public void setDatabases(List<Database> databases) { 062 this.databases = databases; 063 } 064 065 public List<Schema> getSchemas() { 066 return schemas; 067 } 068 069 public void setSchemas(List<Schema> schemas) { 070 this.schemas = schemas; 071 } 072 073 public List<Query> getQueries() { 074 return queries; 075 } 076 077 public void setQueries(List<Query> queries) { 078 this.queries = queries; 079 } 080 081 public List<DBLink> getDbLinks() { 082 return dbLinks; 083 } 084 085 public void setDbLinks(List<DBLink> dbLinks) { 086 this.dbLinks = dbLinks; 087 } 088 089 public Database appendDatabase(Database database) { 090 if (database == null) 091 return null; 092 093 if (this.databases == null) { 094 this.databases = new ArrayList<Database>(); 095 } 096 097 for (Database databaseItem : databases) { 098 if (SQLUtil.compareIdentifier(EDbVendor.valueOf(getDbVendor()), ESQLDataObjectType.dotCatalog, 099 databaseItem.getName(), database.getName())) { 100 return databaseItem; 101 } 102 } 103 104 this.databases.add(database); 105 return database; 106 } 107 108 public Schema appendSchema(Schema schema) { 109 if (schema == null) 110 return null; 111 112 if (this.schemas == null) { 113 this.schemas = new ArrayList<Schema>(); 114 } 115 116 for (Schema schemaItem : schemas) { 117 if (SQLUtil.compareIdentifier(EDbVendor.valueOf(getDbVendor()), ESQLDataObjectType.dotSchema, 118 schemaItem.getName(), schema.getName())) { 119 return schemaItem; 120 } 121 } 122 123 this.schemas.add(schema); 124 return schema; 125 } 126 127}