package com.rjconsultores;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.Map;

import com.rjconsultores.ventaboletos.entidad.Tarifa;

import br.com.rjconsultores.auditador.annotations.AuditarClasse;

public class Teste {
	
	public static void main(String[] args) {
		try {
			Tarifa tarifa = new Tarifa();
			AuditarClasse classe = tarifa.getClass().getAnnotation(AuditarClasse.class);
			Object obj = Proxy.getInvocationHandler(classe);
			System.out.println(classe.tela());
			Field campo = obj.getClass().getDeclaredField("memberValues");
			if(campo != null ) {
				campo.setAccessible(true);
			}
			 Map<String, Object> memberValues = (Map<String, Object>) campo.get(obj);
			 Object tela = memberValues.get("tela");
			 if(tela != null) {
				 memberValues.put("tela", "Teste2");
			 }
			 System.out.println(classe.tela());
			
//			for (Method metodo : classe.getClass().getDeclaredField("memberValues")) {
//				metodo.setAccessible(true);
//				if(metodo.getName().equals("tela")) {
//					metodo.invoke(classe);
//					break;
//				}
//			}
//			classe = tarifa.getClass().getAnnotation(AuditarClasse.class);
//			System.out.println(classe.tela());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
