@Override
 public Object evaluate(String expression) throws Exception {
   try {
     TypeExpressionHolder.push(clazz);
     return helper.evaluate(String.format("$[%s]", expression));
   } finally {
     TypeExpressionHolder.pop();
   }
 }