r1 - 23 Nov 2006 - 16:59:50 - AndreFerreiraYou are here: TWiki >  Doo Web  > ExemploDeUsoDoPrevayler > CriandoUmExemplo > CriandoUmExemploParte2 > CriandoUmExemploParte3

4. Criando um sistema prevalente (parte 3)

Agora vamos ao principal: como fazer nosso sistema ser prevalente?

Para tornar nosso sistema prevalente, primeiramente devemos declarar um objeto como sendo do tipo Prevayler. Esse objeto será o nosso sistema daqui pra frente. Então tudo que fomos fazer no sistema (adicionar, remover, perguntar...) deverá ser feito por/nesse objeto.

...
Prevayler nossoSistema;
...

Agora que declaramos ele, devemos criá-lo. Para isso precisamos de um objeto que constrói o nosso sistema prevalente. Isso é feito pela classe PrevaylerFactory. É através dela que nosso sistema se tornará prevalente. Basta passarmos nossa lista (um ArrayList que usaremos para armazenar os problemas) para esse objeto:

...
PrevaylerFactory fábrica = new PrevaylerFactory();
fábrica.configurePrevalentSystem(new ArrayList<Problema>());         
fábrica.configurePrevalenceDirectory("problemas");         
nossoSistema = fábrica.create();
...

Observações: o método configurePrevalenceSystem(...) recebe como um argumento qualquer objeto serializável (que implementa a inteface Serializable). É por esse método que passamos nossa lista para que ela se torne nosso sistema prevalente. O método configurePrevalenceDirectory(...) não é necessário, mas utilizamos ele pois queremos configurar o diretório onde serão salvos os arquivos que o Prevayler gera. No nosso caso todos os arquivos gerados serão guardados no diretório problemas. Caso contrário, se não configurássemos um diretório, ele daria um padrão (Prevalence).

Pronto, depios disso temos nosso sistema prevalente. Agora vamos usá-lo. Nosso sistema faz 3 coisas: adiciona novos problemas, remove problemas existentes e pede para retornar um problema existente (para ser visualizado por exemplo). Para executarmos essas ações temos que pedir para nosso sistema prevalente executar o método execute(...), que deve receber um objeto de Transaction (quando queremos que ele faça algo que altere nosso sistema - adição e remoção de problemas) ou então Query (quando queremos apenas perguntar algo para nosso sistema - retornar um problema).

* Para adicionarmos um problema ao nosso sistema prevalente, primeiramente devemos criar o problema (new Problema(...)), e depois criar um objeto de AdicaoDeProblema levando o problema que criamos para que ele seja adicionado ao nosso sistema e então pedimos para nosso sistema executá-lo:

...
Problema eclipseNãoInstalado = new Problema("sala 3", "máquina 4", "O Eclipse não está instalado");
nossoSistema.execute(new AdicaoDeProblema(eclipseNãoInstalado));
...

* Para removermos um problema do nosso sistema devemos criar um objeto de RemocaoDeProblema e pedir para o sistema executá-lo:

...
nossoSistema.execute(new RemocaoDeProblema(1));
...

* Para retornarmos um problema do nosso sistema (para exibí-lo por exemplo), devemos criar um objeto de RetornoDeProblema e pedimos para o sistema executá-lo:

...
Problema p = (Problema) nossoSistema.execute(new RetornoDeProblema(1));
...

anterior | próximo


-- GleidsonEcheli - 23 Nov 2006

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r1 | More topic actions
 
Powered by TWiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback