1 package uba.db;
2
3 import uba.db.table.TableSchema;
4
5 /***
6 * Esta excepción es generada por la base de datos cuando se intenta crear una
7 * tabla que ya existe.
8 *
9 * @version $Revision: 1.1 $
10 */
11 public class TableAlreadyExistsException extends Exception {
12 private static final long serialVersionUID = 3257009834665653297L;
13 private TableSchema tableSchema;
14 private transient Database database;
15
16 /***
17 * Crea una nueva instancia de la excepción indicando la base de datos y el
18 * esquema de la tabla para el cual fallo la creación.
19 *
20 * @param database
21 * base de datos
22 * @param tableSchema
23 * esquema de la tabla.
24 */
25 public TableAlreadyExistsException(Database database, TableSchema tableSchema) {
26 this.tableSchema = tableSchema;
27 this.database = database;
28 }
29
30 /***
31 * Retorna la base de datos donde ocurrió el error.
32 *
33 * @return las excepciones son serializables, pero una base de datos no, por
34 * eso este método puede llegar a retorna <i>null</i>.
35 */
36 public Database database() {
37 return database;
38 }
39
40 /***
41 * Retorna el esquema de tabla cuyo nombre de tabla ya existe en la base de
42 * datos.
43 */
44 public TableSchema tableSchema() {
45 return tableSchema;
46 }
47
48 /***
49 * @see java.lang.Throwable#getMessage()
50 */
51 public String getMessage() {
52 return "No se pude crear la tabla " + tableSchema().tableName()
53 + " por que ya existe una tabla con el mismo nombre en la base de datos";
54 }
55 }