パッケージ jakarta.interceptor
インターフェース InvocationContext
public interface InvocationContext
インターセプターメソッドが呼び出しチェーンの動作を制御できるようにするインターセプトされた呼び出しと操作に関するコンテキスト情報を公開します。
@AroundInvoke
public Object logInvocation(InvocationContext ctx) throws Exception {
String class = ctx.getMethod().getDeclaringClass().getName();
String method = ctx.getMethod().getName();
Logger.global.entering(class, method, ctx.getParameters());
try {
Object result = ctx.proceed();
Logger.global.exiting(class, method, result);
return result;
}
catch (Exception e) {
Logger.global.throwing(class, method, e);
throw e;
}
}
- 導入:
- Jakarta Interceptors 1.0
方法の概要
修飾子と型メソッド説明AroundConstructインターセプターメソッドが呼び出されたターゲットクラスのコンストラクターを返します。インターセプターが、呼び出しチェーン内の別のインターセプター、ビジネスメソッド、/ または Web サービスエンドポイントによる呼び出しに関連付けられたデータを取得または更新できるようにします。default <T extends AnnotationSE>
TgetInterceptorBinding(ClassSE<T> annotationType) インターセプターバインディングアノテーションの完全なセットに存在する、指定された型の単一のアノテーションを返します。default SetSE<AnnotationSE>呼び出しがインターセプトされているメソッドまたはコンストラクターのインターセプターバインディングアノテーションのセットを返します。default <T extends AnnotationSE>
SetSE<T>getInterceptorBindings(ClassSE<T> annotationType) インターセプタバインディングアノテーションの完全なセットに存在する、指定された型のすべてのアノテーションを返します。インターセプターが呼び出されたターゲットクラスのメソッドを返します。ObjectSE[]ターゲットクラスのメソッドまたはコンストラクターに渡されるパラメーター値を返します。ターゲットインスタンスを返します。getTimer()ターゲットクラスでのタイムアウトメソッド呼び出しに関連付けられたタイマーオブジェクトを返します。AroundTimeout以外のインターセプターメソッド型の場合は null 値を返します。proceed()インターセプターチェーンの次のインターセプターに進みます。voidsetParameters(ObjectSE[] params) ターゲットクラスのメソッドまたはコンストラクターに渡されるパラメーター値を設定します。
方法の詳細
getTarget
ObjectSE getTarget()ターゲットインスタンスを返します。AroundConstructライフサイクルコールバックインターセプターメソッドの場合、getTargetメソッドは、proceed()メソッドの前に呼び出された場合にnullを返します。- 戻り値:
- ターゲットインスタンス
getTimer
ObjectSE getTimer()ターゲットクラスでのタイムアウトメソッド呼び出しに関連付けられたタイマーオブジェクトを返します。AroundTimeout以外のインターセプターメソッド型の場合は null 値を返します。例: Jakarta Enterprise Beans コンポーネントのタイムアウトに関連付けられている場合、このメソッドはjakarta.ejb.Timerを返します。- 戻り値:
- タイマーオブジェクトまたは null 値
- 導入:
- Jakarta Interceptors 1.1
getMethod
MethodSE getMethod()インターセプターが呼び出されたターゲットクラスのメソッドを返します。ターゲットクラスで宣言された(またはスーパークラスから継承された)対応するライフサイクルコールバックメソッドがないライフサイクルコールバックインターセプターまたはAroundConstructライフサイクルコールバックインターセプターメソッドで null を返します。- 戻り値:
- メソッド、または null 値
getConstructor
ConstructorSE<?> getConstructor()AroundConstructインターセプターメソッドが呼び出されたターゲットクラスのコンストラクターを返します。AroundConstructインターセプターメソッド以外のインターセプターメソッド型の場合は null を返します。- 戻り値:
- コンストラクター、または null 値
getParameters
ObjectSE[] getParameters()ターゲットクラスのメソッドまたはコンストラクターに渡されるパラメーター値を返します。setParameters(java.lang.Object[])が呼び出された場合、getParametersはパラメーターが設定された値を返します。- 戻り値:
- 配列としてのパラメーター値
- 例外:
IllegalStateExceptionSE-AroundConstructコールバックではないライフサイクルコールバックメソッド内で呼び出された場合。
setParameters
ターゲットクラスのメソッドまたはコンストラクターに渡されるパラメーター値を設定します。- パラメーター:
params- 配列としてのパラメーター値- 例外:
IllegalStateExceptionSE-AroundConstructコールバックではないライフサイクルコールバックメソッド内で呼び出された場合。IllegalArgumentExceptionSE- 指定されたパラメーター値の型がメソッドまたはコンストラクターパラメーターの型と一致しない場合、または提供されたパラメーターの数がメソッドまたはコンストラクターパラメーターの数と等しくない場合(最後のパラメーターが型Tの vararg パラメーターである場合)型T[]のパラメーターと同等であると見なされます)。
getContextData
インターセプターが、呼び出しチェーン内の別のインターセプター、ビジネスメソッド、/ または Web サービスエンドポイントによる呼び出しに関連付けられたデータを取得または更新できるようにします。- 戻り値:
- この呼び出しまたはライフサイクルコールバックに関連付けられたコンテキストデータ。コンテキストデータがない場合は、空の
Map<String,Object>オブジェクトが返されます。
proceed
インターセプターチェーンの次のインターセプターに進みます。アラウンドインボークまたはアラウンドタイムアウトインターセプターメソッドの場合、チェーンの最後のインターセプターメソッドでproceedを呼び出すと、ターゲットクラスメソッドが呼び出されます。AroundConstructライフサイクルコールバックインターセプターメソッドの場合、チェーンの最後のインターセプターメソッドでproceedを呼び出すと、ターゲットインスタンスが作成されます。他のすべてのライフサイクルコールバックインターセプターメソッドの場合、ターゲットクラスにコールバックメソッドが定義されていない場合、チェーンの最後のインターセプターメソッドでの proceed の呼び出しは何もしません。次に呼び出されたメソッドの結果を返します。メソッドの戻り値の型が void の場合は null 値を返します。
- 戻り値:
- チェーンの次のメソッドの戻り値
- 例外:
ExceptionSE- コールスタックのターゲットメソッドまたはインターセプターメソッドによってスローされた場合
getInterceptorBindings
呼び出しがインターセプトされているメソッドまたはコンストラクターのインターセプターバインディングアノテーションのセットを返します。ターゲットメソッドまたはターゲットコンストラクターがない場合は、ターゲットクラスに適用されたインターセプターバインディングアノテーションが返されます。継承されたインターセプターバインディングアノテーション、推移的なインターセプターバインディングアノテーション、異なるインターセプターメソッド型のインターセプターを関連付けるインターセプターバインディングアノテーション、およびインターセプターを関連付けないインターセプターバインディングアノテーションを含む、すべてのインターセプターバインディングアノテーションが返されます。
インターセプターバインディングアノテーションが適用されておらず、すべてのインターセプターが
@Interceptorsアノテーションを使用して関連付けられている場合は、空のセットを返します。- 戻り値:
- インターセプタバインディングアノテーションの不変セット、決して
null - 導入:
- Jakarta Interceptors 2.2
getInterceptorBinding
インターセプターバインディングアノテーションの完全なセットに存在する、指定された型の単一のアノテーションを返します。インターセプタバインディングアノテーションの完全なセットに指定された型のアノテーションが含まれていない場合は、
nullを返します。反復可能なSEインターセプタバインディングアノテーションの場合は、代わりに
getInterceptorBindings(Class)を使用する必要があります。- パラメーター:
annotationType- インターセプタバインディングアノテーションの型。nullであってはなりません- 戻り値:
- 指定された型のインターセプタバインディングアノテーション。
nullの場合があります - 導入:
- Jakarta Interceptors 2.2
getInterceptorBindings
インターセプタバインディングアノテーションの完全なセットに存在する、指定された型のすべてのアノテーションを返します。インターセプタバインディングアノテーションの完全なセットに指定された型のアノテーションが含まれていない場合は、空のセットを返します。
- パラメーター:
annotationType- インターセプタバインディングアノテーションの型は、nullであってはなりません- 戻り値:
- 指定された型のインターセプタバインディングアノテーションの不変セット、決して
null - 導入:
- Jakarta Interceptors 2.2