Monday, May 29, 2006

プリミティブ・ポイントカット一覧

やはりここを参照。
http://netail.net/aosdwiki/index.php

以下引用

ポイントカットのメソッド記述方法について
例としてexecutionポイントカットのメソッド記述方法

execution(MethodPat)

MethodPat:
[ModifiersPat] TypePat [TypePat . ] IdPat ( TypePat | .., … ) [ throws ThrowsPat ]

ここで言うMethodPatとは、ポイントカットの対象とするメソッドの記述方法を指し、[]で囲まれた箇所は書略可能である事を示す。というのは当たり前か。

[ModifiersPat]: 修飾子を示す。public/privateなどのスコープ子をさす。
TypePat: 対象のメソッドが返す戻り値の型を示す。
[TypePat . ]: 対象メソッドのクラス名、と、言うことかな。"."で修飾して対象メソッドを指定する場合。
IdPat: メソッドの名称
( TypePat | .., … ): 引数の型とリスト。".."とすると、任意の数の引数を指す。多態な複数のメソッドもひとつのポイントカットでまとめて対象とする際にも使える。
[ throws ThrowsPat ]: 例外のリスト。省略時は任意の例外を投げるメソッドが対象。Javaは例外の型の違いでも多態なメソッドになるんだったっけ?(後で調べねば)

public Object ArrayList.set(int, Object) throws IndexOutOfBoundsException
| | | | | |
| | | | | `-[ throws ThrowsPat ]
| | | | `-( TypePat | .., … )
| | | `-IdPat
| | `-[TypePat . ]
| `-TypePat
`-[ModifiersPat]

No comments: