[Seasar-user:562] Re: Aspect でのSelメソッド

B gluegent.com Masataka Kurihara kurihara
2004年 4月 1日 (木) 11:13:27 JST


栗原です。

> 構造を記述するのはXML、ロジックはGroovyってのが
> 適材適所なのかも。

急に思いついたので、ソースを眺めてみました。

SelParserを生成しているところが、Grepすると以下の三箇所です。
  ExpressionConstructorAssembler#assemble()
  ArgDefImpl#getValue()
  AbstractMethodAssembler#invokeExpression(Object, String)

また、SelParserのpublicメソッドは以下の二つ
  public final BoolExpression parseBoolExpression()
  public final Expression parseExpression()
しかし、parseBoolExpression()は使われていません。さらには、
このparseExpression()は new SelParser(String).parseExpression()
という使われ方をしています。よって、

public interface SelContext {
  //(既存メソッド省略)
  public Expression parseExpression(String exp);
}

で、まず暫定で受けといてSelParserのコンストラクタを
S2ContainerSelContextに隠してみてはいかがでしょうか。
S2ContainerSelContextもS2ContainerImplでファクトリ的に
生成しているから、将来において、式言語orスクリプトに変
更する道もひらけるかなと思います。Selの拡張もしくは置
き換えは優先順位としては高くないと思いますので、Selの
扱いを当面(もしくは永遠)メインに据えておいて、サブ
プロジェクトで試行錯誤してみたらいいかなと。

org.seasar.framework.sel.Expressionと、groovy.lang.Script
org.apache.bsf.BSFManager、ognl.OGNLContextを見比べてみる
と、なんでもいけるようにぱっと見ですが思いました。

--
株式会社グルージェント
栗原 傑享(くりはら まさたか)
渋谷区渋谷3-7-6 第6矢木ビル4F
TEL:03-5469-8869 FAX:03-5469-8879
URL:http://www.gluegent.com/
--





Seasar-user メーリングリストの案内