001package com.randomnoun.common.db.to;
002
003import java.util.ArrayList;
004import java.util.HashMap;
005import java.util.List;
006import java.util.Map;
007
008/** Container class for per-owner (schema) data */
009public class SchemaTO {
010        private DatabaseTO database;
011        
012        private String name;
013        private Map<String, TableTO> tableMap;
014        private Map<String, TriggerTO> triggerMap;
015        
016        /*
017        public List indexes;
018        public List views;
019        public List synonyms;
020        public List sequences;
021        public List clusters;
022        //public UserTypeTO userType;
023        //public SourceTypeTO sourceType;
024        //public SecurityTO security;
025         */
026        
027        public SchemaTO(DatabaseTO database, String schemaName) {
028                this.database = database;
029                this.name = schemaName;
030                tableMap = new HashMap<String, TableTO>();
031                triggerMap = new HashMap<String, TriggerTO>();
032        }
033        
034        public TableTO getTable(String tableName) {
035                TableTO table = tableMap.get(database.upper(tableName));
036                if (table == null) { 
037                        table = new TableTO(this, database.upper(tableName)); 
038                        tableMap.put(database.upper(tableName), table); 
039                }
040                return table;
041        }
042        
043        public String getName() { return name; }
044        public DatabaseTO getDatabase() { return database; }
045
046        public List<String> getTableNames() {
047                return new ArrayList<String>(tableMap.keySet());
048        }
049
050        public List<String> getTriggerNames() {
051                return new ArrayList<String>(triggerMap.keySet());
052        }
053
054        public Map<String, TableTO> getTableMap() {
055                return tableMap;
056        }
057
058        public void setTableMap(Map<String, TableTO> tableMap) {
059                this.tableMap = tableMap;
060        }
061
062        public Map<String, TriggerTO> getTriggerMap() {
063                return triggerMap;
064        }
065
066        public void setTriggerMap(Map<String, TriggerTO> triggerMap) {
067                this.triggerMap = triggerMap;
068        }
069
070        public void setDatabase(DatabaseTO database) {
071                this.database = database;
072        }
073
074        public void setName(String name) {
075                this.name = name;
076        }
077}