uba.db
Class DatabaseBehavior

java.lang.Object
  extended by uba.db.DatabaseBehavior
All Implemented Interfaces:
Database
Direct Known Subclasses:
FileSystemDatabase, MemoryDatabase

public abstract class DatabaseBehavior
extends java.lang.Object
implements Database

Clase base utilizada para simplificar la creación de clases que implementen Database.

Version:
$Revision: 1.5 $

Constructor Summary
DatabaseBehavior()
          Este método es equivalente a: DatabaseBehavior(null)
DatabaseBehavior(java.lang.Object configuration)
          Las subclases deben invocar este constructor si desean inicializar la instancia de la base de datos usando una configuración particular.
 
Method Summary
protected  void addToColumnsTable(java.lang.Integer tableId, Table table)
          Agrega todas las columnas de una tabla, a la tabla columnsTable() del catalogo.
protected  void addToTablesTable(java.lang.Integer tableId, Table table)
          Agrega el id y nombre de la tabla a la tabla tablesTable() del catalogo.
protected  void addToUserTablesMap(Table table)
          Agrega una tabla al diccionario de tablas de usuario.
protected abstract  Table basicCreateTable(TableSchema tableSchema)
          Las sub-clases deben implementar este método creando la instancia concreta de la tabla a utilizar.
protected  Table basicTableNamed(java.lang.String tableName)
           
 Table columnsTable()
          Retorna la tabla del cátalogo, que contiene a todas las columnas en las tablas de usuario.
protected  void configureDatabaseUsing(java.lang.Object configuration)
          Las sub-clases pueden sobre-escribir este método para configurar la instancia antes de inicializar la base de datos.
 boolean containsTableNamed(java.lang.String tableName)
          Permite determinar si la base de datos contiene una tabla de nombre tableName.
protected  Table createColumnsTable()
          Crea la instancia concreta de la tabla utilizada para guardar las columnas de cada tabla del usuario.
 Table createTable(TableSchema tableSchema)
          Crea una nueva tabla.
protected  Table createTablesTable()
          Crea la instancia concreta de la tabla utilizada para guardar las tablas del usuario.
 Table dataTypesTable()
          Retorna la tabla del cátalogo, que contiene a todos los tipos de datos disponibles.
protected abstract  IdGenerator idGenerator()
          Las sub-clases deben implementar este método retornando un objeto que se encarga de crear los ids para las nuevas tablas.
protected  void initializeUserTables()
          Las sub-clases pueden sobre escribir este método si desean inicializar las
 java.util.Collection systemTables()
          Retorna una lista con las tablas que son especiales para el sistema (catalogo).
 Table tableNamed(java.lang.String tableName)
          Retorna la tabla de nombre tableName.
 java.util.Collection tables()
          Retorna una lista con las tablas creadas por el usuario y las tablas del sistema.
 Table tablesTable()
          Retorna la tabla del cátalogo, que contiene a todas las tablas definidas por el usuario.
 java.util.Collection userTables()
          Retorna una lista con las tablas creadas por el usuario.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DatabaseBehavior

public DatabaseBehavior()
                 throws DatabaseInitializationException
Este método es equivalente a: DatabaseBehavior(null)

Throws:
DatabaseInitializationException
See Also:
DatabaseBehavior(Object)

DatabaseBehavior

public DatabaseBehavior(java.lang.Object configuration)
                 throws DatabaseInitializationException
Las subclases deben invocar este constructor si desean inicializar la instancia de la base de datos usando una configuración particular.

Parameters:
configuration - "configuración" a utilizar, cada sub-clase debe hacer un cast de este objeto según sea necesario.
Throws:
DatabaseInitializationException - si no se pudo inicializar la base de datos.
Method Detail

initializeUserTables

protected void initializeUserTables()
                             throws DatabaseInitializationException
Las sub-clases pueden sobre escribir este método si desean inicializar las

Throws:
DatabaseInitializationException

configureDatabaseUsing

protected void configureDatabaseUsing(java.lang.Object configuration)
                               throws DatabaseInitializationException
Las sub-clases pueden sobre-escribir este método para configurar la instancia antes de inicializar la base de datos.

Parameters:
configuration - "configuración" a utilizar, cada sub-clase debe hacer un cast de este objeto según sea necesario.
Throws:
DatabaseInitializationException - si no se pudo inicializar la base de datos.
See Also:
createTablesTable(), createColumnsTable(), createDataTypesTable()

tableNamed

public Table tableNamed(java.lang.String tableName)
                 throws UnknowTableName
Description copied from interface: Database
Retorna la tabla de nombre tableName.

Specified by:
tableNamed in interface Database
Parameters:
tableName - el nombre de la tabla a retornar.
Throws:
UnknowTableName - si no existe una tabla de nombre tableName
See Also:
Database.tableNamed(java.lang.String)

containsTableNamed

public boolean containsTableNamed(java.lang.String tableName)
Description copied from interface: Database
Permite determinar si la base de datos contiene una tabla de nombre tableName.

Specified by:
containsTableNamed in interface Database
Parameters:
tableName - nombre de la table
Returns:
true si existe una tabla con el nombre dado.
See Also:
Database.containsTableNamed(java.lang.String)

basicCreateTable

protected abstract Table basicCreateTable(TableSchema tableSchema)
                                   throws TableCreationException
Las sub-clases deben implementar este método creando la instancia concreta de la tabla a utilizar.

Parameters:
tableSchema - esquema de la tabla a crear.
Returns:
una instancia concreta de Table que depende de la implementación.
Throws:
TableCreationException - si no se pudo crear la tabla.

createTable

public Table createTable(TableSchema tableSchema)
                  throws TableAlreadyExistsException,
                         TableCreationException
Description copied from interface: Database
Crea una nueva tabla.

Specified by:
createTable in interface Database
Parameters:
tableSchema - es equema de la tabla a crear.
Returns:
un objeto que representa la nueva tabla creada.
Throws:
TableAlreadyExistsException - esta excepción si ya existe una table con el nombre de tabla indicado en el esquema.
TableCreationException - esta excepción se genera si no se pudo crear la tabla.
See Also:
Database.createTable(uba.db.table.TableSchema)

idGenerator

protected abstract IdGenerator idGenerator()
Las sub-clases deben implementar este método retornando un objeto que se encarga de crear los ids para las nuevas tablas.


tables

public java.util.Collection tables()
Description copied from interface: Database
Retorna una lista con las tablas creadas por el usuario y las tablas del sistema.

Specified by:
tables in interface Database
See Also:
Database.tables()

createColumnsTable

protected Table createColumnsTable()
Crea la instancia concreta de la tabla utilizada para guardar las columnas de cada tabla del usuario. Por default utilizar un MemoryTable como implementación.

See Also:
SystemTableSchemas.COLUMNS_SCHEMA

createTablesTable

protected Table createTablesTable()
                           throws java.lang.Exception
Crea la instancia concreta de la tabla utilizada para guardar las tablas del usuario. Por default utilizar un MemoryTable como implementación.

Throws:
java.lang.Exception
See Also:
SystemTableSchemas.COLUMNS_SCHEMA

addToUserTablesMap

protected void addToUserTablesMap(Table table)
Agrega una tabla al diccionario de tablas de usuario.

Parameters:
table - la tabla a agregar.

addToColumnsTable

protected void addToColumnsTable(java.lang.Integer tableId,
                                 Table table)
Agrega todas las columnas de una tabla, a la tabla columnsTable() del catalogo.

Parameters:
tableId - identificador de la tabla.
table - la tabla.

addToTablesTable

protected void addToTablesTable(java.lang.Integer tableId,
                                Table table)
Agrega el id y nombre de la tabla a la tabla tablesTable() del catalogo.

Parameters:
tableId - identificador de la tabla.
table - la tabla.

systemTables

public java.util.Collection systemTables()
Description copied from interface: Database
Retorna una lista con las tablas que son especiales para el sistema (catalogo).

Specified by:
systemTables in interface Database
See Also:
Database.systemTables()

userTables

public java.util.Collection userTables()
Description copied from interface: Database
Retorna una lista con las tablas creadas por el usuario.

Specified by:
userTables in interface Database
See Also:
Database.userTables()

basicTableNamed

protected Table basicTableNamed(java.lang.String tableName)
See Also:
basicTableNamed(java.lang.String)

tablesTable

public Table tablesTable()
Description copied from interface: Database
Retorna la tabla del cátalogo, que contiene a todas las tablas definidas por el usuario.

Specified by:
tablesTable in interface Database
See Also:
Database.tablesTable()

dataTypesTable

public Table dataTypesTable()
Description copied from interface: Database
Retorna la tabla del cátalogo, que contiene a todos los tipos de datos disponibles.

Specified by:
dataTypesTable in interface Database
See Also:
Database.dataTypesTable()

columnsTable

public Table columnsTable()
Description copied from interface: Database
Retorna la tabla del cátalogo, que contiene a todas las columnas en las tablas de usuario.

Specified by:
columnsTable in interface Database
See Also:
Database.columnsTable()


Copyright © -2005 . All Rights Reserved.