tenho a seguinte annotatio:
[code]@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface PermissaoAnnotation {
String Objeto();
String Acao();
}[/code]
o seguinte método:
@PermissaoAnnotation(Objeto="telaUsuario",Acao="inserir")
public void inserirUsuario(Usuario usuario) throws RepositoryException{
Repository dao = new Dao();
try
{
dao.beginRecording();
GerarLog.checkPermission("inserirUsuario", usuario, null, this, this.getClass());
dao.add(usuario);
dao.commitRecord();
}catch(RepositoryException ex)
{
dao.rollbackRecord();
throw ex;
}
}
O metodo checkPermission recebe a classe do método inserirUsuario e eu tento recuperar as annotations de inserirUsuario da seguinte forma
public static <T> void checkPermission(String method, Usuario usuario, Object id, Object obj, Class<T> classe) throws RepositoryException {
Dao dao = new Dao();
if (obj != null) {
try {
PermissaoAnnotation per = null;
Method metodo = null;
Method[] metodos = classe.getMethods();
for (Method m : metodos) {
if (m.getName().equals(method)) {
metodo = m;
break;
}
}
per = metodo.getAnnotation(PermissaoAnnotation.class);
}
if (per != null) {
.....
}
} catch (NoSuchFieldException ex) {
Logger.getLogger(GerarLog.class.getName()).log(Level.SEVERE, null, ex);
} catch (SecurityException ex) {
throw new RepositoryException(ex);
} catch (RepositoryException ex) {
throw ex;
}
}
}
ele encontra o método inserirUsuario por reflexão tudo certo, mas as Annotations ficam como null, ele não trás as Annotations juntos, o que mais tenho de fazer para ele reconhecer as Annotations?