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 017 public String getName() { 018 return name; 019 } 020 021 public void setName(String name) { 022 this.name = name; 023 } 024 025 public List<Procedure> getProcedures() { 026 return procedures; 027 } 028 029 public void setProcedures(List<Procedure> procedures) { 030 this.procedures = procedures; 031 } 032 033 public List<Procedure> getFunctions() { 034 return functions; 035 } 036 037 public void setFunctions(List<Procedure> functions) { 038 this.functions = functions; 039 } 040 041 public List<Procedure> getTriggers() { 042 return triggers; 043 } 044 045 public void setTriggers(List<Procedure> triggers) { 046 this.triggers = triggers; 047 } 048 049 public void appendProcedure(Procedure procedure) { 050 if (procedure == null || procedure.getType() == null) { 051 return; 052 } 053 if (procedure.getType().toLowerCase().indexOf("function") != -1) { 054 if (functions == null) { 055 functions = new ArrayList<Procedure>(); 056 } 057 procedure.setType("function"); 058 functions.add(procedure); 059 } else if (procedure.getType().toLowerCase().indexOf("trigger") != -1) { 060 if (triggers == null) { 061 triggers = new ArrayList<Procedure>(); 062 } 063 procedure.setType("trigger"); 064 triggers.add(procedure); 065 } else { 066 if (procedures == null) { 067 procedures = new ArrayList<Procedure>(); 068 } 069 procedure.setType("procedure"); 070 procedures.add(procedure); 071 } 072 } 073 074 public Coordinate[] getCoordinates() { 075 if (ModelBindingManager.getGlobalOption()!=null && ModelBindingManager.getGlobalOption().isIgnoreCoordinate()) { 076 return null; 077 } 078 return coordinates; 079 } 080 081 public void setCoordinates(Coordinate[] coordinates) { 082 if (ModelBindingManager.getGlobalOption()!=null && ModelBindingManager.getGlobalOption().isIgnoreCoordinate()) { 083 return; 084 } 085 this.coordinates = coordinates; 086 } 087 088 @JSONField(serialize = false) 089 public Database getDatabase() { 090 TreeNode parent = getParent(); 091 Server server = getServer(); 092 if (parent == null || server == null) { 093 return null; 094 } 095 if (server.isSupportsCatalogs() && server.isSupportsSchemas()) { 096 return (Database) parent.getParent(); 097 } else if (server.isSupportsCatalogs()) { 098 return (Database) parent; 099 } 100 return null; 101 } 102 103 @JSONField(serialize = false) 104 public Schema getSchema() { 105 TreeNode parent = getParent(); 106 Server server = getServer(); 107 if (parent == null || server == null) { 108 return null; 109 } 110 if (server.isSupportsSchemas()) { 111 return (Schema) parent; 112 } 113 return null; 114 } 115}