n pop class Stack Object pop Object obj
ジョインポイントの追加 n コメントの織り込み先の追加 ¨ 呼び出し側(pop)メソッドへの影響を反映 class Stack { : /** スタックからひとつ取り出す */ Object pop() { Object obj = peek(); : } /** スタックのトップを見る */ Object peek() { return element. At(size() – 1); } } aspect Stack. Checking { /** @caller() * @exception Empty. Stack. Exception * スタックのサイズが0のとき */ before() : execution(Object Stack. peek()) { if (size () == 0) throw new Empty. Stack. Exception(); }}
コメントのモジュール分割 n ポイントカットとアドバイスのコメントの分割 aspect Stack. Checking { /** @callee * if the caller is the classes in <tt>java. util</tt> package. * @caller (within(java. util. *)) */ pointcut peek() : call(Object Stack. peek()) && within(java. util. *); /** @exception Empty. Stack. Exception スタックのサイズが0のとき */ before() : peek() { if (size () == 0) throw new Empty. Stack. Exception(); }}
- Slides: 18