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", obj);
Object r = e.evaluate(jc);
if (!(r instanceof Boolean)) {
throw new RuntimeException("Expression did not returned a boolean value but: " + r);
}
Boolean oldVal = req.getCallbacks().get(method);