-EA1の式言語のとりあつかい

さて、昨日の考察の続きになりますが、EA1では以下の書き方がされていました。

113: TagProcessorImpl#setProperties(...)
value = pageContext.getVariableResolver().resolveVariable(s);

うーん、これでいいのかなあ。確証がないのですが、以下の感じかなと。

VariableResolver recolver = pageContext().getVariableResolver();
ExpressionEvaluator evaluator = pageContext().getExpressionEvaluator();
value = evaluator.evaluate(s, type, resolver, mapper);

私の組んでみたOGNLの式言語ホストサンプル(http://package.gluegent.com/~kurihara/maya/MayaELImplSample20041201.zip)にてはExpressionEvaluatorでたたくようにしてますです。これが正しいのかを継続調査します。
追記
Jasper2のソースを読んで、確信持ちました。ExpressionEvaluatorをたたくのが正解。VariableResolverは、ExpressionEvaluator#evaluate(..., VariableResolver, ...)、もしくはExpressionEvaluator#parseExpression(...)で生成されるExpressionのメソッドである、Expression#evaluate(VariableResolver)と、引数に置かれることが想定されていて、Expressionの実装の内部以外から直接VariableResolver#resolveVariable(String)を呼ぶことは想定されていないと思われます。VariableResolver#resolveVariable(String)の引数には名前は渡せるけど、式は渡せないということです。