br.ufg.integrate.controller
Class Controller

java.lang.Object
  extended by br.ufg.integrate.controller.Controller
All Implemented Interfaces:
ControllerI

public class Controller
extends Object
implements ControllerI

Version:
0.1 Cria uma interface centralizada entre o mediador e as fontes de dados.
Author:
Rogerio

Field Summary
 
Fields inherited from interface br.ufg.integrate.controller.ControllerI
LOOKUP, WRAPPER
 
Method Summary
 void closeConnection(String integration)
          Encerra as conexões nas fontes de dados definidas na integração informada como argumento, cujo ID deve ser definido no arquivo 'integrations.xml'.
 void commit(DataSource dsTarget)
          Torna persistentes as alterações na fonte de dados informada.
 void commit(String integration)
          Torna persistentes as alterações nas fontes de dados definidas na integração informada como argumento, cujo ID deve ser definido no arquivo 'integrations.xml'.
 ResultSet executeIntegratedQuery(String target, String sql)
          Executa consulta integrada a uma fonte de dados de destino desejada (identificada pelo identificador definido no arquivo 'integrate-datasources.xml').
 List<ResultSet> executeQueryFile(String id, String queryFile)
          Executa consulta integrada, considerando as configurações efetuadas no arquivo 'integration.xml', identificada pelo id.
 StringBuilder executeQueryInXmlFormat(String[] targets, String[] queries)
          Executa consulta integrada, informando as fontes de dados de destino desejadas e as respectivas consultas, identificadas pelo identificador definido no arquivo 'integrate-datasources.xml'.
 StringBuilder executeQueryInXmlFormat(String target, String sql)
          Executa consulta integrada a uma fonte de dados de destino desejada (identificada pelo identificador definido no arquivo 'integrate-datasources.xml') e a respectiva consulta.
 int executeUpdate(String target, String sql)
          Executa uma atualização integrada a fontes de dados de destino desejadas (identificadas pelo identificador definido no arquivo 'integrate-datasources.xml').
 Connection getConnection(String idDataSource)
          Retorna um java.sql.Connection acessado pelo Wrapper identificado pelo argumento.
 DataSources getDataSources()
          Retorna um DataSources que empacota uma coleção de objetos do tipo DataSource.
 String getDriver(String idDataSource)
          Retorna o driver JDBC registrado no arquivo 'integrate-datasources.xml' para a fonte de dados identificada pelo id passado como argumento.
static Controller getInstance()
          Retorna a instância única desta classe, implementando o pattern Singleton.
 Integrations getIntegrations()
          Retorna um Integrations, que empacota uma coleção de objetos do tipo Integration.
 Mediator getMediator()
          Retorna uma referência para classe que implementa a interface Mediator.
 Map<String,String> getParams()
          Retorna os parâmetros configurados no arquivo 'integrate-config.xml'.
 long getTime()
          Retorna o tempo de duração calculado durante o uso de alguma das funções de consulta que utiliza uma fonte de dados.
 long getTotalTime()
          Retorna o tempo de duração calculado durante o uso de alguma das funções de consulta que utilizam fontes de dados em conjunto.
 String getUrl(String idDataSource)
          Retorna a URL JDBC registrada no arquivo 'integrate-datasources.xml' para a fonte de dados identificada pelo id passado como argumento.
 void initAllParams(int useType)
          Carrega os parâmetros iniciais do sistema (integrate-config.xml) e os parâmetros das fontes de dados (integrate-datasources.xml os arquivos de definição da conversão do tipo de dados da fonte para os tipos aceitos em XML Schema).
 void initConfigParams()
          Carrega os parâmetros de configuração definidos no arquivo 'integrate-config.xml'.
 void initDataSourceParams()
          Carrega os parâmetros de configuração definidos no arquivo 'integrate-datasources.xml'.
 void initIntegrationParams()
          Carrega os parâmetros de configuração definidos no arquivo 'integrations.xml'.
 StringBuilder lookup()
          Acesso ao texto da conversão dos objetos em memória que representam os esquemas de todas as fontes de dados configuradas no arquivo 'integrate-datasources.xml'.
 StringBuilder lookup(DataSource ds)
          Acesso à variável que armazena o texto da conversão dos objetos em memória que representa o esquema de uma fonte de dados passada como argumento.
 StringBuilder lookup(String idDataSource)
          Acesso à variável que armazena o texto da conversão dos objetos em memória que representa o esquema de uma fonte de dados passada como argumento.
 List<DatabaseMetaData> lookupMetaData()
          Monta a coleção de esquemas obtidos das fontes de dados cadastradas no arquivo 'integrate-datasources.xml' e retorna uma coleção de metadados JDBC.
 DatabaseMetaData lookupMetaData(DataSource ds)
          Retorna o esquema obtido da fonte de dados informada.
 DatabaseMetaData lookupMetaData(String idDatasource)
          Retorna o esquema obtido da fonte de dados informada.
 void saveResultSetsToXmlFile(String[] targets, String[] queries, String xmlOutputFile)
          Gera uma coleção de ResultSets obtidos de consultas em um arquivo XML.
 void saveResultSetsToXmlFile(String idIntegration, String queryFile, String xmlOutputFile)
          Imprime o resultado gerado em formato XML em arquivo texto informado.
 void saveSchemasToXMLFile(String outputFile, boolean append)
          Cria um arquivo XML contendo os esquemas de todas as fontes de dados configuradas no arquivo 'integrate-datasource.xml'.
 void saveSchemaToXMLFile(String idDataSource, String outputFile, boolean append)
          Cria um arquivo XML contendo o esquema de uma das fontes de dados configuradas no arquivo 'integrate-datasource.xml', identificada pelo identificador passado como argumento.
 void setMediator()
          Gera uma referência para a classe que implementa a interface Mediator, cujo nome deve ser configurado no arquivo 'integrate-config.xml'.
 void start()
          imp,ementação da interface ControllerI
 void stop()
          Libera os recursos iniciados pelas instâncias da interface Lookup/Wrapper.
 void stop(String idDataSource)
          Libera os recursos iniciados pelas instâncias da interface Lookup/Wrapper.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

closeConnection

public void closeConnection(String integration)
                     throws SQLException
Encerra as conexões nas fontes de dados definidas na integração informada como argumento, cujo ID deve ser definido no arquivo 'integrations.xml'.

Specified by:
closeConnection in interface ControllerI
Parameters:
integration - Integração registrada, com uma coleção de fonte de dados de destino
Throws:
SQLException

commit

public void commit(DataSource dsTarget)
            throws SQLException
Torna persistentes as alterações na fonte de dados informada.

Specified by:
commit in interface ControllerI
Parameters:
dsTarget - Fonte de dados de destino
Throws:
SQLException

commit

public void commit(String integration)
            throws SQLException
Torna persistentes as alterações nas fontes de dados definidas na integração informada como argumento, cujo ID deve ser definido no arquivo 'integrations.xml'.

Specified by:
commit in interface ControllerI
Parameters:
integration - Integração registrada
Throws:
SQLException

executeIntegratedQuery

public ResultSet executeIntegratedQuery(String target,
                                        String sql)
                                 throws SQLException
Executa consulta integrada a uma fonte de dados de destino desejada (identificada pelo identificador definido no arquivo 'integrate-datasources.xml'). Se a fonte de dados de destino for a mesma da fonte de origem, esta recebe a consulta SQL diretamente. Caso contrário, a sentença SQL é convertida, através de serviço solicitado ao mediador.

Specified by:
executeIntegratedQuery in interface ControllerI
Parameters:
target - Identificador da consulta integrada existente no arquivo 'integration.xml'
sql - Sentença SQL a ser executada.
Throws:
IntegrateException
SQLException

executeQueryInXmlFormat

public StringBuilder executeQueryInXmlFormat(String target,
                                             String sql)
                                      throws IntegrateException
Executa consulta integrada a uma fonte de dados de destino desejada (identificada pelo identificador definido no arquivo 'integrate-datasources.xml') e a respectiva consulta.

Specified by:
executeQueryInXmlFormat in interface ControllerI
Parameters:
target - Identificador da consulta integrada existente no arquivo 'integration.xml'
sql - Sentença SQL a ser executada, já no formato da respectiva fonte de dados.
Returns:
StringBuilder Texto que representa o resultado em formato XML.
Throws:
IntegrateException - Mesnagens de erro são gravadas no arquivo 'error.log'.

executeQueryInXmlFormat

public StringBuilder executeQueryInXmlFormat(String[] targets,
                                             String[] queries)
                                      throws IntegrateException
Executa consulta integrada, informando as fontes de dados de destino desejadas e as respectivas consultas, identificadas pelo identificador definido no arquivo 'integrate-datasources.xml'. O resultado final é retornado em formato XML.

Specified by:
executeQueryInXmlFormat in interface ControllerI
Parameters:
targets - Coleção de destinos, definidos no arquivo 'integrate-datasources.xml'.
queries - Coleção de consultas SQL, ordenadas na mesma seqüência da coleçã de fontes de dados (parâmetro 'targets').
Returns:
StringBuilder Texto que representa o resultado em formato XML. Os ResultSet's são ordenados pelo identificador.
Throws:
IntegrateException

executeQueryFile

public List<ResultSet> executeQueryFile(String id,
                                        String queryFile)
                                 throws IntegrateException
Executa consulta integrada, considerando as configurações efetuadas no arquivo 'integration.xml', identificada pelo id. O arquivo de consulta infomado é validado pelo arquivo query.xsd antes do processamento.

Specified by:
executeQueryFile in interface ControllerI
Returns:
List Coleção de ResultSets obtidos das consultas solicitadas. Para montar esta coleção, o Integrate ordena os DataSources em ordem crescente do identificador. É nesta ordem que os ResultSets são inseridos na coleção.
Throws:
IntegrateException

executeUpdate

public int executeUpdate(String target,
                         String sql)
                  throws SQLException
Executa uma atualização integrada a fontes de dados de destino desejadas (identificadas pelo identificador definido no arquivo 'integrate-datasources.xml'). Se a fonte de dados de destino for a mesma da fonte de origem, esta recebe a consulta SQL diretamente. Caso contrário, a sentença SQL é convertida, através de serviço solicitado ao mediador.

Specified by:
executeUpdate in interface ControllerI
Parameters:
target - Identificador da consulta integrada existente no arquivo 'integration.xml'
sql - Sentença SQL a ser executada.
Throws:
SQLException
IntegrateException

getConnection

public Connection getConnection(String idDataSource)
                         throws IntegrateException
Retorna um java.sql.Connection acessado pelo Wrapper identificado pelo argumento. Este identificador é um dos configurados previamente no arquivo 'integrate-datasources.xml'.

Specified by:
getConnection in interface ControllerI
Throws:
IntegrateException

getDataSources

public DataSources getDataSources()
                           throws IntegrateException
Retorna um DataSources que empacota uma coleção de objetos do tipo DataSource.

Specified by:
getDataSources in interface ControllerI
Returns:
DataSources Coleção de DataSource
Throws:
WrapperException - Se DataSources for null. Execute init() antes.
IntegrateException

getDriver

public String getDriver(String idDataSource)
                 throws IntegrateException
Retorna o driver JDBC registrado no arquivo 'integrate-datasources.xml' para a fonte de dados identificada pelo id passado como argumento.

Specified by:
getDriver in interface ControllerI
Returns:
Driver JDBC registrado para esta fonte de dados.
Throws:
IntegrateException - Caso haja algum erro ao acessar o arquivo 'integrate-datasources.xml'.

getInstance

public static Controller getInstance()
Retorna a instância única desta classe, implementando o pattern Singleton.


getIntegrations

public Integrations getIntegrations()
                             throws IntegrateException
Retorna um Integrations, que empacota uma coleção de objetos do tipo Integration.

Specified by:
getIntegrations in interface ControllerI
Returns:
Integrations Coleção de Integration
Throws:
WrapperException - Se Integrations for null. Execute init() antes.
IntegrateException

getMediator

public Mediator getMediator()
                     throws IntegrateException
Retorna uma referência para classe que implementa a interface Mediator.

Specified by:
getMediator in interface ControllerI
Returns:
Mediator Implementação da interface Mediator.
Throws:
IntegrateException - Caso haja erro ao carregar parâmetros do arquivo de configuração.
See Also:
Mediator

getParams

public Map<String,String> getParams()
                             throws IntegrateException
Retorna os parâmetros configurados no arquivo 'integrate-config.xml'.

Specified by:
getParams in interface ControllerI
Throws:
IntegrateException

getTime

public long getTime()
Retorna o tempo de duração calculado durante o uso de alguma das funções de consulta que utiliza uma fonte de dados. Se o valor retornado for 0 significa que estas funções não foram utilizadas, e esta variável não foi inicializada.

Specified by:
getTime in interface ControllerI

getTotalTime

public long getTotalTime()
Retorna o tempo de duração calculado durante o uso de alguma das funções de consulta que utilizam fontes de dados em conjunto. Se o valor retornado for 0 significa que estas funções não foram utilizadas, e esta variável não foi inicializada.

Specified by:
getTotalTime in interface ControllerI

getUrl

public String getUrl(String idDataSource)
              throws IntegrateException
Retorna a URL JDBC registrada no arquivo 'integrate-datasources.xml' para a fonte de dados identificada pelo id passado como argumento.

Specified by:
getUrl in interface ControllerI
Returns:
URL registrada para esta fonte de dados.
Throws:
IntegrateException - Caso haja algum erro ao acessar o arquivo 'integrate-datasources.xml'.

initAllParams

public void initAllParams(int useType)
                   throws IntegrateException
Carrega os parâmetros iniciais do sistema (integrate-config.xml) e os parâmetros das fontes de dados (integrate-datasources.xml os arquivos de definição da conversão do tipo de dados da fonte para os tipos aceitos em XML Schema). Para carregar também as configurações das integrações desejadas (integration.xml), basta informar como argumento Controller.WRAPPER .

Specified by:
initAllParams in interface ControllerI
Throws:
WrapperException - Ver erros lançados pelo método loadTypes() da classe DataSource.
XMLException - Erro no parse dos arquivos de configuração ou dos datasources.
IntegrateException

initConfigParams

public void initConfigParams()
                      throws IntegrateException
Carrega os parâmetros de configuração definidos no arquivo 'integrate-config.xml'. Erros na definição dos parâmetros são impressos no arquivo 'error.log'.

Specified by:
initConfigParams in interface ControllerI
Throws:
IntegrateException

initDataSourceParams

public void initDataSourceParams()
                          throws IntegrateException
Carrega os parâmetros de configuração definidos no arquivo 'integrate-datasources.xml'. Erros na definição dos parâmetros são impressos no arquivo 'error.log'.

Specified by:
initDataSourceParams in interface ControllerI
Throws:
IntegrateException

initIntegrationParams

public void initIntegrationParams()
                           throws IntegrateException
Carrega os parâmetros de configuração definidos no arquivo 'integrations.xml'. Erros na definição dos parâmetros são impressos no arquivo 'error.log'.

Specified by:
initIntegrationParams in interface ControllerI
Throws:
IntegrateException

lookup

public StringBuilder lookup()
                     throws IntegrateException
Acesso ao texto da conversão dos objetos em memória que representam os esquemas de todas as fontes de dados configuradas no arquivo 'integrate-datasources.xml'.

Specified by:
lookup in interface ControllerI
Returns:
StringBuilder Variável que empacota o texto a ser impresso.
Throws:
IntegrateException - Caso ocorra algum erro na preparação do arquivo XML de saída.
See Also:
ControllerI.lookup()

lookup

public StringBuilder lookup(String idDataSource)
                     throws IntegrateException,
                            XMLException
Acesso à variável que armazena o texto da conversão dos objetos em memória que representa o esquema de uma fonte de dados passada como argumento.

Specified by:
lookup in interface ControllerI
Parameters:
idDataSource - identificador da fonte de dados(ver 'integrate-datasources.xml').
Returns:
StringBuilder Variável que empacota o texto a ser impresso.
Throws:
XMLException - Caso ocorra algum erro na preparação do arquivo XML de saída.
IntegrateException
See Also:
ControllerI.lookup(java.lang.String)

lookup

public StringBuilder lookup(DataSource ds)
                     throws IntegrateException,
                            XMLException
Acesso à variável que armazena o texto da conversão dos objetos em memória que representa o esquema de uma fonte de dados passada como argumento.

Specified by:
lookup in interface ControllerI
Parameters:
ds - DataSource que representa a fonte de dados(ver 'integrate-datasources.xml').
Returns:
StringBuilder Variável que empacota o texto a ser impresso.
Throws:
XMLException - Caso ocorra algum erro na preparação do arquivo XML de saída.
IntegrateException
See Also:
ControllerI.lookup(br.ufg.integrate.xml.bean.DataSource)

lookupMetaData

public List<DatabaseMetaData> lookupMetaData()
                                      throws IntegrateException
Monta a coleção de esquemas obtidos das fontes de dados cadastradas no arquivo 'integrate-datasources.xml' e retorna uma coleção de metadados JDBC.

Specified by:
lookupMetaData in interface ControllerI
Returns:
List Coleção de DatabaseMetaData.
Throws:
WrapperException
IntegrateException
See Also:
ControllerI.lookupMetaData()

lookupMetaData

public DatabaseMetaData lookupMetaData(DataSource ds)
                                throws IntegrateException
Retorna o esquema obtido da fonte de dados informada.

Specified by:
lookupMetaData in interface ControllerI
Returns:
DatabaseMetaData referente ao DataSource informado.
Throws:
WrapperException
IntegrateException
See Also:
ControllerI.lookupMetaData(br.ufg.integrate.xml.bean.DataSource)

lookupMetaData

public DatabaseMetaData lookupMetaData(String idDatasource)
                                throws IntegrateException
Retorna o esquema obtido da fonte de dados informada.

Specified by:
lookupMetaData in interface ControllerI
Returns:
DatabaseMetaData DatabaseMetaData do datasource solicitado.
Throws:
IntegrateException
See Also:
ControllerI.lookupMetaData(java.lang.String)

saveResultSetsToXmlFile

public void saveResultSetsToXmlFile(String[] targets,
                                    String[] queries,
                                    String xmlOutputFile)
                             throws WrapperException
Gera uma coleção de ResultSets obtidos de consultas em um arquivo XML.

Specified by:
saveResultSetsToXmlFile in interface ControllerI
Throws:
WrapperException
See Also:
ControllerI.saveResultSetsToXmlFile(java.lang.String[], java.lang.String[], java.lang.String)

saveResultSetsToXmlFile

public void saveResultSetsToXmlFile(String idIntegration,
                                    String queryFile,
                                    String xmlOutputFile)
                             throws WrapperException
Imprime o resultado gerado em formato XML em arquivo texto informado.

Specified by:
saveResultSetsToXmlFile in interface ControllerI
Parameters:
idIntegration - Identificador da fonte de dados. Os ResultSet's são ordenados pelo identificador da fonte de dados.
queryFile - Arquivo que representa uma consulta, validada pelo 'query.xsd'.
xmlOutputFile - Nome do arquivo que será gerado.
Throws:
WrapperException

saveSchemasToXMLFile

public void saveSchemasToXMLFile(String outputFile,
                                 boolean append)
                          throws XMLException,
                                 IntegrateException
Cria um arquivo XML contendo os esquemas de todas as fontes de dados configuradas no arquivo 'integrate-datasource.xml'.

Specified by:
saveSchemasToXMLFile in interface ControllerI
Parameters:
outputFile - Texto contendo caminho e nome do arquivo de saída desejado.
append - Informe 'true' caso deseje que a operação não sobrescreva o arquivo de saída, mas adicione o resultado no final do arquivo.
Throws:
XMLException
IntegrateException

saveSchemaToXMLFile

public void saveSchemaToXMLFile(String idDataSource,
                                String outputFile,
                                boolean append)
                         throws XMLException,
                                IntegrateException
Cria um arquivo XML contendo o esquema de uma das fontes de dados configuradas no arquivo 'integrate-datasource.xml', identificada pelo identificador passado como argumento.

Specified by:
saveSchemaToXMLFile in interface ControllerI
Parameters:
idDataSource - identificador da fonte de dados.
outputFile - Texto contendo caminho e nome do arquivo de saída desejado.
append - Informe 'true' caso deseje que a operação não sobrescreva o arquivo de saída, mas adicione o resultado no final do arquivo.
Throws:
XMLException
IntegrateException

setMediator

public void setMediator()
                 throws IntegrateException
Gera uma referência para a classe que implementa a interface Mediator, cujo nome deve ser configurado no arquivo 'integrate-config.xml'.

Specified by:
setMediator in interface ControllerI
Throws:
IntegrateException

start

public void start()
imp,ementação da interface ControllerI

Specified by:
start in interface ControllerI

stop

public void stop()
          throws IntegrateException
Libera os recursos iniciados pelas instâncias da interface Lookup/Wrapper. Deve ser executada após o término das operações.

Specified by:
stop in interface ControllerI
Throws:
WrapperException
IntegrateException

stop

public void stop(String idDataSource)
          throws WrapperException
Libera os recursos iniciados pelas instâncias da interface Lookup/Wrapper. Deve ser executada após o término das operações.

Specified by:
stop in interface ControllerI
Throws:
WrapperException


Copyright © 2008 Rogério Arantes Gaioso. All Rights Reserved.