Interceptorで取得したMethodがpublicかどうか調べる方法
JavaEEのInterceptorを使っています。
Interceptの対象クラス(メソッドではない)に対してInterceptorのアノテーションを付けたいのですが、実際にInterceptしたいのは対象クラスのpublic
メソッドのみです。
従って、@AroundInvoke
で受け取ったInvocationContext
からMethodを取得し、それがpublic
かどうかをチェックしたいと考えています。
ただ、Methodクラスにそれっぽいメソッドを見つけることができませんでした。
何を見ればそれをチェックできるでしょうか?
あるいは、public
メソッドのみを対象にInterceptできるような手段があれば、そのほうが良いです。
【追記】
実験してみたところ、そもそもprivate
メソッドにはInterceptできませんでした。
それどころか、public
だとしても、「別のクラスから呼ばれた時」しかInterceptできないように見えます。
(対象クラス内部から自身のpublic
メソッドを呼んだ場合にはInterceptされない)
「別のクラスから呼ばれた時しかInterceptされない」という仕様なのであれば、そもそもpublic
かどうか調べなくて良いので、ちょうど良いのですが、この認識は正しいでしょうか?