[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 メーリングリストの案内