@SuppressWarnings("unchecked")
public void doWith(Method method) throws IllegalArgumentException, IllegalAccessException {
if (method.getAnnotation(Callback.class) != null) {
try {
Expression e = ExpressionFactory.createExpression(method.getAnnotation(Callback.class).condition());
JexlContext jc = JexlHelper.createContext();
jc.getVars().put("this", bean);
Object r = e.evaluate(jc);
if (r instanceof Boolean == false) {
throw new RuntimeException("Expression did not returned a boolean value but: " + r);
}
Boolean oldVal = req.getCallbacks().get(method);