001package gudusoft.gsqlparser.dlineage.metadata; 002 003import java.util.ArrayList; 004import java.util.List; 005 006import gudusoft.gsqlparser.dlineage.dataflow.model.ModelBindingManager; 007import gudusoft.gsqlparser.util.json.JSONField; 008 009public class Package extends TreeNode { 010 011 private String name; 012 private List<Procedure> procedures; 013 private List<Procedure> functions; 014 private List<Procedure> triggers; 015 private Coordinate[] coordinates; 016 private String databaseName; 017 private String schemaName; 018 019 public String getName() { 020 return name; 021 } 022 023 public void setName(String name) { 024 this.name = name; 025 } 026 027 public List<Procedure> getProcedures() { 028 return procedures; 029 } 030 031 public void setProcedures(List<Procedure> procedures) { 032 this.procedures = procedures; 033 } 034 035 public List<Procedure> getFunctions() { 036 return functions; 037 } 038 039 public void setFunctions(List<Procedure> functions) { 040 this.functions = functions; 041 } 042 043 public List<Procedure> getTriggers() { 044 return triggers; 045 } 046 047 public void setTriggers(List<Procedure> triggers) { 048 this.triggers = triggers; 049 } 050 051 public void appendProcedure(Procedure procedure) { 052 if (procedure == null || procedure.getType() == null) { 053 return; 054 } 055 if (procedure.getType().toLowerCase().indexOf("function") != -1) { 056 if (functions == null) { 057 functions = new ArrayList<Procedure>(); 058 } 059 procedure.setType("function"); 060 functions.add(procedure); 061 } else if (procedure.getType().toLowerCase().indexOf("trigger") != -1) { 062 if (triggers == null) { 063 triggers = new ArrayList<Procedure>(); 064 } 065 procedure.setType("trigger"); 066 triggers.add(procedure); 067 } else { 068 if (procedures == null) { 069 procedures = new ArrayList<Procedure>(); 070 } 071 procedure.setType("procedure"); 072 procedures.add(procedure); 073 } 074 } 075 076 public Coordinate[] getCoordinates() { 077 if (ModelBindingManager.getGlobalOption()!=null && ModelBindingManager.getGlobalOption().isIgnoreCoordinate()) { 078 return null; 079 } 080 return coordinates; 081 } 082 083 public void setCoordinates(Coordinate[] coordinates) { 084 if (ModelBindingManager.getGlobalOption()!=null && ModelBindingManager.getGlobalOption().isIgnoreCoordinate()) { 085 return; 086 } 087 this.coordinates = coordinates; 088 } 089 090 @JSONField(serialize = false) 091 public Database getDatabase() { 092 TreeNode parent = getParent(); 093 Server server = getServer(); 094 if (parent == null || server == null) { 095 return null; 096 } 097 if (server.isSupportsCatalogs() && server.isSupportsSchemas()) { 098 return (Database) parent.getParent(); 099 } else if (server.isSupportsCatalogs()) { 100 return (Database) parent; 101 } 102 return null; 103 } 104 105 @JSONField(serialize = false) 106 public Schema getSchema() { 107 TreeNode parent = getParent(); 108 Server server = getServer(); 109 if (parent == null || server == null) { 110 return null; 111 } 112 if (server.isSupportsSchemas()) { 113 return (Schema) parent; 114 } 115 return null; 116 } 117 118 public String getDatabaseName() { 119 return databaseName; 120 } 121 122 public void setDatabaseName(String databaseName) { 123 this.databaseName = databaseName; 124 } 125 126 public String getSchemaName() { 127 return schemaName; 128 } 129 130 public void setSchemaName(String schemaName) { 131 this.schemaName = schemaName; 132 } 133}