4. Criando um sistema prevalente.
Antes de mais nada, nesse exemplo
foi usada a versão 2.3 do Prevayler, que pode ser baixada
daqui ou então baixar o
arquivo anexado.
Continuando a
primeira parte, vamos criar um exemplo de uso do Prevayler. O exemplo é simples e serve apenas para exemplificar mesmo, pois está toscamente implementado e não segue nenhuma metodologia: Vamos criar um sistema para cadastrar os problemas existentes nos computadores de salas de aula.
Primeiramente precisaremos criar uma classe que represente um problema. Essa classe precisa implementar a interface
Serializable do Java.
package exemplo;
import java.io.Serializable;
public class Problema implements Serializable {
private static final long serialVersionUID = 1L;
private final String _sala;
private final String _máquina;
private final String _problema;
public Problema(String sala, String máquina, String problema) {
_sala = sala;
_máquina = máquina;
_problema = problema;
}
public String retornarSala() {
return _sala;
}
public String retornarMáquina() {
return _máquina;
}
public String retornarDescrição() {
return _problema;
}
}
Agora precisaremos de algo para guardar nossos "problemas". Aqui vamos utilizar uma lista ArrayList, mas poderia ser qualquer outra, desde que implemente a inteface
Serializable do Java (Por exemplo: HashSet, TreeSet)
Vamos também precisar de uma classe responsável por
adicionar problemas à nossa lista.
package exemplo;
import java.util.Date;
import java.util.List;
import org.prevayler.Transaction;
public class AdicaoDeProblema implements Transaction {
private static final long serialVersionUID = 1L;
private final Problema _problema;
public AdicaoDeProblema(Problema umProblema) {
_problema = umProblema;
}
public void executeOn(Object sistemaPrevayler, Date tempo) {
((List<Problema>)sistemaPrevayler).add(_problema);
}
}
Observações importantes: Toda ação que for alterar o sistema precisa implementar a inteface
Transaction do Prevayler. Como essa classe vai ser responsável por adicionar problemas ao nosso sistema, ela precisa implementar essa inteface. Ao fazer isso, somos obrigados a implementar o método
executeOn(...) . Por enquanto não vamos falar nele. Ele será melhor esclarecido mais adiante.
anterior |
próximo
--
GleidsonEcheli - 23 Nov 2006