Especialistas,
Infelizmente não consegui usar Hibernate ou OJB no meu projeto. Preciso mandando objetos fora da sessão desses frameworks por RMI para clientes SWT. Como também são poucas classes, uns dias de programação na unha resolve o problema. Ai me deparei com classes para transportar os dados com muitos gets e sets para os atributos. Pensei em extrair um Map da tabela SQL que contem campo=valor do registro, e instanciar uma classe com a lógica de negócio a partir desse map, como no exemplo abaixo.
Pontos em questão:
- Isso é uma implementação suja ?
- É um problema de performance o cast de dados no momento do get ?
- Fica muito gorda a classe com o Map para ser serializada ?
- Existe mecanismo melhor ?
Vejam que a intenção é ser bem genérico para trabalhar com os gets e sets. Se eu criar um Map por uma consulta no banco, posso brincar com esse Map de forma bem simples. Agora imaginem que derrepente esse Map precise vir de um XML ou uma query LDAP? - praticamente não muda nada na estrutura dessa classe DadoSimples…
Um abraço
Davi
import java.util.*;
public abstract class DadoSimples implements java.io.Serializable {
// Colocar todos os atributos dentro do MAP
private Map<String,Object> meta = null;
// Construtor para receber os dados de fora
public DadoSimples(Map<String,Object> meta) {
this.meta = meta;
}
// Cria uma instancia vazia
public DadoSimples() {
meta = new HashMap<String,Object>();
}
// Todos os setters genéricos usam esse set !
public void set(String attributeName, Object value) {
meta.put(attributeName, value);
}
// Todos os getters genéricos usam esse get !
public Object get(String attributeName) {
return meta.get(attributeName);
}
// Get específico
public String getName() {
return (String) meta.get("name");
}
// ...
}

