canguru.database
Class ProxyDB

java.lang.Object
  |
  +--canguru.database.ProxyDB

public class ProxyDB
extends java.lang.Object

Classe que realiza as operações de banco de dados de acordo com a configuração e dados inseridos no descriptor associado ao proxy.

See Also:
Descriptor

Field Summary
private  java.sql.PreparedStatement createTable
          PreparedStatement para criação de tabela no banco
private  DAO dao
           
private  Descriptor descriptor
          Descritor da classe a ser armazenada/recuperada do banco
private  java.sql.PreparedStatement insert
          PreparedStatement para inserção em tabelas no banco
private  java.sql.PreparedStatement selectAll
          PreparedStatement para selecionar todos dados em tabelas do banco
private  java.lang.StringBuffer selectFilteredQuery
          PreparedStatement para selecionar dados filtrados em tabelas do banco
private  java.sql.PreparedStatement verifyTable
          PreparedStatement para verificar a existência de tabela no banco
 
Constructor Summary
ProxyDB(Descriptor descriptor)
          Cria um proxy para realizar as operações relacionadas ao banco de dados.
 
Method Summary
private  void fillFilteredStatement(java.sql.PreparedStatement selectFiltered, java.util.Set filter)
          Prepara o Statement de busca
 void initializeTable()
          Verifica a existência da tabela definida pelo descriptor e a cria se necessário
 void load()
          Carrega elementos do banco de dados e os insere no descriptor associado ao proxy, sobrescrevendo dados anteriores
 void loadFiltered()
          Carrega elementos do banco de dados de acordo com filtros definidos no descriptor associado ao proxy.
 void save()
          Salva no banco de dados elementos inseridos no descriptor.
private  int selectFilteredQuery(java.lang.StringBuffer selectFilteredQuery, int filters, java.util.Set filter)
          Monta query para seleção usando filtros
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

dao

private DAO dao

insert

private java.sql.PreparedStatement insert
PreparedStatement para inserção em tabelas no banco


verifyTable

private java.sql.PreparedStatement verifyTable
PreparedStatement para verificar a existência de tabela no banco


createTable

private java.sql.PreparedStatement createTable
PreparedStatement para criação de tabela no banco


selectAll

private java.sql.PreparedStatement selectAll
PreparedStatement para selecionar todos dados em tabelas do banco


selectFilteredQuery

private java.lang.StringBuffer selectFilteredQuery
PreparedStatement para selecionar dados filtrados em tabelas do banco


descriptor

private Descriptor descriptor
Descritor da classe a ser armazenada/recuperada do banco

Constructor Detail

ProxyDB

public ProxyDB(Descriptor descriptor)
        throws java.lang.ClassNotFoundException,
               java.sql.SQLException,
               java.io.IOException
Cria um proxy para realizar as operações relacionadas ao banco de dados.

Um proxy está sempre associado a um descriptor e é especializado para operações na tabela definida pelo descriptor.

Parameters:
descriptor - objeto que contém informações para criação e manipulação de uma tabela no banco de dados, assim como, a conversão entre dados do banco e dados da aplicação java
Throws:
java.sql.SQLException - É lançada em caso de erro na execução de comandos SQL
java.lang.ClassNotFoundException - É lancada quando a classe que está descrita não pode ser encontrada
java.io.IOException - É lançada em caso de erro na inicialização do dao
See Also:
Descriptor
Method Detail

initializeTable

public void initializeTable()
                     throws java.sql.SQLException
Verifica a existência da tabela definida pelo descriptor e a cria se necessário

Throws:
java.sql.SQLException - É lançada em caso de erro na execução de comandos SQL
See Also:
Descriptor

save

public void save()
          throws java.sql.SQLException
Salva no banco de dados elementos inseridos no descriptor.

Throws:
java.sql.SQLException - É lançada em caso de erro na execução de comandos SQL
See Also:
Descriptor

load

public void load()
          throws java.sql.SQLException
Carrega elementos do banco de dados e os insere no descriptor associado ao proxy, sobrescrevendo dados anteriores

Throws:
java.sql.SQLException - É lançada em caso de erro na execução de comandos SQL
See Also:
Descriptor

loadFiltered

public void loadFiltered()
                  throws java.sql.SQLException,
                         ElementNotFoundException
Carrega elementos do banco de dados de acordo com filtros definidos no descriptor associado ao proxy. Os elementos recuperados pelo filtro mantém referência aos elementos presentes no descriptor.

Throws:
java.sql.SQLException - É lançada em caso de erro na execução de comandos SQL
ElementNotFoundException - É lançada quando um elemento do filtro não pode ser encontrada

fillFilteredStatement

private void fillFilteredStatement(java.sql.PreparedStatement selectFiltered,
                                   java.util.Set filter)
                            throws java.sql.SQLException
Prepara o Statement de busca

Parameters:
selectFiltered - Statement com o select de busca com filtros
filter - critérios de filtros aplicados à busca
Throws:
java.sql.SQLException - É lançada em caso de erro na execução de comandos SQL

selectFilteredQuery

private int selectFilteredQuery(java.lang.StringBuffer selectFilteredQuery,
                                int filters,
                                java.util.Set filter)
Monta query para seleção usando filtros

Parameters:
selectFilteredQuery - String com select da busca
filters - número de filtros que serão utilizados na busca
filter - conjunto de filtros utilizados na busca
Returns:
número de filtros