domingo, 30 de janeiro de 2011

java metadata

Olá, encontrei um código interessante e resolvi postar aqui.. ele verifica se algum atributo de um determinado objeto possui a annotation Id..

Quando eu tiver mais tempo vou dar uma pesquisada maior sobre isso... essa questão de metadata é bem interessante, procurando no google existe bastante material sobre isso.

http://pastie.org/1505699

/**
* Verifica se a entidade em questão possui um Id. Método utilizado para escolher
* se a o esquema de persistência deve salvar ou atualizar o modelo
* @param entity A entidade a ser verificada
* @return true se a entidade possui Id
* @throws Exception Caso algo de errado, uma exceção será lançada
*/
public boolean hasId(Object entity) throws Exception{
Class clazz = entity.getClass();
for(Field f : clazz.getDeclaredFields()){
if(!f.isAccessible())
f.setAccessible(true);
if(f.isAnnotationPresent(Id.class)){
if(f.get(entity) != null){
log.info("ID found: "+f.get(entity));
return true;
}
}
}
return false;
}

Alguns links interessantes:
http://www.guj.com.br/articles/136
http://java.sun.com/products/jmi/
http://download.oracle.com/javase/1.4.2/docs/api/java/sql/DatabaseMetaData.html
http://download.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/AnnotatedElement.html
http://download.oracle.com/javase/6/docs/api/java/lang/reflect/AccessibleObject.html

Vaaleu!
Adriano Schmidt

Nenhum comentário:

Postar um comentário