001package gudusoft.gsqlparser.dlineage.dataflow.sqlenv; 002 003import gudusoft.gsqlparser.dlineage.dataflow.sqlenv.model.*; 004import gudusoft.gsqlparser.dlineage.util.DlineageUtil; 005import gudusoft.gsqlparser.sqlenv.*; 006 007public class SQLEnvImporter { 008 public static void importTSQLEnv(TSQLEnv sqlenv, SQLEnv sqlEnvModel) { 009 sqlenv.setDefaultServerName(sqlEnvModel.getDefaultServer()); 010 sqlenv.setDefaultCatalogName(sqlEnvModel.getDefaultDatabase()); 011 sqlenv.setDefaultSchemaName(sqlEnvModel.getDefaultSchema()); 012 if (sqlEnvModel.getCatalogs() != null) { 013 for (Catalog catalog : sqlEnvModel.getCatalogs()) { 014 TSQLCatalog sqlCatalog = sqlenv.createSQLCatalog(catalog.getName()); 015 if (sqlCatalog != null) { 016 importTSchema(sqlCatalog, catalog); 017 } 018 } 019 } 020 } 021 022 private static void importTSchema(TSQLCatalog sqlCatalog, Catalog catalog) { 023 if (catalog.getSchemas() != null) { 024 for (Schema schema : catalog.getSchemas()) { 025 TSQLSchema sqlSchema = sqlCatalog.createSchema(schema.getName()); 026 if (sqlSchema != null) { 027 importTSQLTable(sqlSchema, schema); 028 importTSQLOraclePackage(sqlSchema, schema); 029 importTSQLProcedure(sqlSchema, schema); 030 } 031 } 032 } 033 } 034 035 private static void importTSQLProcedure(TSQLSchema sqlSchema, Schema schema) { 036 if (schema.getProcedures() != null) { 037 for (Procedure procedure : schema.getProcedures()) { 038 if ("procedure".equalsIgnoreCase(procedure.getType())) { 039 TSQLProcedure sqlProcedure = sqlSchema.createProcedure(procedure.getName()); 040 sqlProcedure.setDefinition(procedure.getDefinition()); 041 } else if ("function".equalsIgnoreCase(procedure.getType())) { 042 TSQLProcedure sqlFunction = sqlSchema.createFunction(procedure.getName()); 043 sqlFunction.setDefinition(procedure.getDefinition()); 044 } else if ("trigger".equalsIgnoreCase(procedure.getType())) { 045 TSQLProcedure sqlTrigger = sqlSchema.createTrigger(procedure.getName()); 046 sqlTrigger.setDefinition(procedure.getDefinition()); 047 } 048 } 049 } 050 } 051 052 private static void importTSQLOraclePackage(TSQLSchema sqlSchema, Schema schema) { 053 if (schema.getOraclePackages() != null) { 054 for (OraclePackage oraclePackage : schema.getOraclePackages()) { 055 TSQLOraclePackage sqlOraclePackage = sqlSchema.createOraclePackage(oraclePackage.getName()); 056 sqlOraclePackage.setDefinition(oraclePackage.getDefinition()); 057 if (oraclePackage.getProcedures() != null) { 058 for (Procedure procedure : oraclePackage.getProcedures()) { 059 if ("procedure".equalsIgnoreCase(procedure.getType())) { 060 sqlOraclePackage.createProcedure(procedure.getName()); 061 } else if ("function".equalsIgnoreCase(procedure.getType())) { 062 sqlOraclePackage.createFunction(procedure.getName()); 063 } else if ("trigger".equalsIgnoreCase(procedure.getType())) { 064 sqlOraclePackage.createTrigger(procedure.getName()); 065 } 066 } 067 } 068 } 069 } 070 } 071 072 private static void importTSQLTable(TSQLSchema sqlSchema, Schema schema) { 073 if (schema.getTables() != null) { 074 for (Table table : schema.getTables()) { 075 TSQLTable sqlTable = sqlSchema.createTable(DlineageUtil.getSimpleTableName(table.getName())); 076 if (sqlTable != null) { 077 sqlTable.setView(Boolean.valueOf(table.getIsView())); 078 if(table.getPriority()!=null){ 079 sqlTable.setPriority(table.getPriority()); 080 } 081 importTSQLColumn(sqlTable, table); 082 } 083 } 084 } 085 } 086 087 private static void importTSQLColumn(TSQLTable sqlTable, Table table) { 088 if (table.getColumns() != null) { 089 for (Column column : table.getColumns()) { 090 sqlTable.addColumn(column.getName()); 091 } 092 } 093 } 094}