001package com.randomnoun.common.db.to;
002
003import java.util.ArrayList;
004import java.util.LinkedHashMap;
005import java.util.List;
006import java.util.Map;
007
008public class TableTO {
009        private String name;
010        private SchemaTO schema;
011        private Map<String, TableColumnTO> tableColumnMap;
012        private Map<String, ConstraintTO> constraintMap;
013        private Map<String, TriggerTO> triggerMap;
014
015        public TableTO(SchemaTO schema, String tableName) {
016                this.schema = schema;
017                this.name = tableName;
018                this.tableColumnMap = new LinkedHashMap<String, TableColumnTO>();
019                this.constraintMap = new LinkedHashMap<String, ConstraintTO>();
020                this.triggerMap = new LinkedHashMap<String, TriggerTO>();
021
022        }
023        
024        public TableColumnTO getTableColumn(String name) {
025                TableColumnTO column = tableColumnMap.get(name);
026                if (column==null) { throw new IllegalArgumentException("Column '" + name + "' not found"); }
027                return column;
028        };
029        
030        public List<TableColumnTO> getTableColumns() {
031                return new ArrayList<TableColumnTO>(tableColumnMap.values());
032        }
033        
034        public List<String> getTableColumnNames() {
035                return new ArrayList<String>(tableColumnMap.keySet());
036        }
037        public String getName() { return name; }
038        public SchemaTO getSchema() { return schema; }
039
040        public Map<String, TableColumnTO> getTableColumnMap() {
041                return tableColumnMap;
042        }
043
044        public void setTableColumnMap(Map<String, TableColumnTO> tableColumnMap) {
045                this.tableColumnMap = tableColumnMap;
046        }
047
048        public Map<String, ConstraintTO> getConstraintMap() {
049                return constraintMap;
050        }
051
052        public void setConstraintMap(Map<String, ConstraintTO> constraintMap) {
053                this.constraintMap = constraintMap;
054        }
055
056        public Map<String, TriggerTO> getTriggerMap() {
057                return triggerMap;
058        }
059
060        public void setTriggerMap(Map<String, TriggerTO> triggerMap) {
061                this.triggerMap = triggerMap;
062        }
063
064        public void setName(String name) {
065                this.name = name;
066        }
067
068        public void setSchema(SchemaTO schema) {
069                this.schema = schema;
070        }
071        
072}