1 24 package org.riotfamily.revolt.definition; 25 26 import java.util.ArrayList ; 27 import java.util.Iterator ; 28 import java.util.List ; 29 30 34 public class Table extends Identifier { 35 36 private List columns = new ArrayList (); 37 38 private List primaryKeys = new ArrayList (); 39 40 private List foreignKeys = new ArrayList (); 41 42 private List uniqueConstraints = new ArrayList (); 43 44 private List indices = new ArrayList (); 45 46 public Table() { 47 } 48 49 public Table(String name) { 50 super(name); 51 } 52 53 public Table(String name, List columns) { 54 super(name); 55 setColumns(columns); 56 } 57 58 public List getColumns() { 59 return this.columns; 60 } 61 62 public void setColumns(List columns) { 63 this.columns = new ArrayList (columns.size()); 64 primaryKeys.clear(); 65 if (columns != null) { 66 Iterator it = columns.iterator(); 67 while (it.hasNext()) { 68 Column column = (Column) it.next(); 69 Column copy = column.copy(); 70 this.columns.add(copy); 71 if (column.isPrimaryKey()) { 72 primaryKeys.add(copy); 73 } 74 } 75 } 76 } 77 78 public void addColumn(Column column) { 79 columns.remove(column); 80 primaryKeys.remove(column); 81 Column copy = column.copy(); 82 columns.add(copy); 83 if (column.isPrimaryKey()) { 84 primaryKeys.add(copy); 85 } 86 } 87 88 public void removeColumn(String name) { 89 columns.remove(new Identifier(name)); 90 } 91 92 public Column getColumn(String name) { 93 return (Column) columns.get(columns.indexOf(new Identifier(name))); 94 } 95 96 public List getPrimaryKeys() { 97 return this.primaryKeys; 98 } 99 100 public void addIndex(Index index) { 101 indices.remove(index); 102 indices.add(index); 103 } 104 105 public void removeIndex(String name) { 106 indices.remove(new Index(name)); 107 } 108 109 public void addForeignKey(ForeignKey fk) { 110 foreignKeys.remove(fk); 111 foreignKeys.add(fk); 112 } 113 114 public void removeForeignKey(String name) { 115 foreignKeys.remove(new ForeignKey(name)); 116 } 117 118 public void addUniqueConstraint(UniqueConstraint uc) { 119 uniqueConstraints.remove(uc); 120 uniqueConstraints.add(uc); 121 } 122 123 public void removeUniqueConstraint(String uc) { 124 uniqueConstraints.remove(new UniqueConstraint(uc)); 125 } 126 127 public List getForeignKeys() { 128 return this.foreignKeys; 129 } 130 131 public List getIndices() { 132 return this.indices; 133 } 134 135 public List getUniqueConstraints() { 136 return this.uniqueConstraints; 137 } 138 139 } 140 | Popular Tags |