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 Procedure extends TreeNode { 010 011 private String name; 012 private String type; 013 private List<Argument> arguments; 014 private Coordinate[] coordinates; 015 private String databaseName; 016 private String schemaName; 017 018 public String getName() { 019 return name; 020 } 021 022 public void setName(String name) { 023 this.name = name; 024 } 025 026 public List<Argument> getArguments() { 027 return arguments; 028 } 029 030 public void setArguments(List<Argument> arguments) { 031 this.arguments = arguments; 032 } 033 034 public String getType() { 035 return type; 036 } 037 038 public void setType(String type) { 039 this.type = type; 040 } 041 042 public void appendArgument(Argument argument) { 043 if (argument == null) { 044 return; 045 } 046 if (arguments == null) { 047 arguments = new ArrayList<Argument>(); 048 } 049 arguments.add(argument); 050 } 051 052 public Coordinate[] getCoordinates() { 053 if (ModelBindingManager.getGlobalOption()!=null && ModelBindingManager.getGlobalOption().isIgnoreCoordinate()) { 054 return null; 055 } 056 return coordinates; 057 } 058 059 public void setCoordinates(Coordinate[] coordinates) { 060 if (ModelBindingManager.getGlobalOption()!=null && ModelBindingManager.getGlobalOption().isIgnoreCoordinate()) { 061 return; 062 } 063 this.coordinates = coordinates; 064 } 065 066 @JSONField(serialize = false) 067 public Database getDatabase() { 068 TreeNode parent = getParent(); 069 Server server = getServer(); 070 if (parent == null || server == null) { 071 return null; 072 } 073 if (server.isSupportsCatalogs() && server.isSupportsSchemas()) { 074 return (Database) parent.getParent(); 075 } else if (server.isSupportsCatalogs()) { 076 return (Database) parent; 077 } 078 return null; 079 } 080 081 @JSONField(serialize = false) 082 public Schema getSchema() { 083 TreeNode parent = getParent(); 084 Server server = getServer(); 085 if (parent == null || server == null) { 086 return null; 087 } 088 if (server.isSupportsSchemas()) { 089 return (Schema) parent; 090 } 091 return null; 092 } 093 094 public String getDatabaseName() { 095 return databaseName; 096 } 097 098 public void setDatabaseName(String databaseName) { 099 this.databaseName = databaseName; 100 } 101 102 public String getSchemaName() { 103 return schemaName; 104 } 105 106 public void setSchemaName(String schemaName) { 107 this.schemaName = schemaName; 108 } 109}