Package org.aopalliance.intercept
Interface Interceptor
- All Superinterfaces:
Advice
- All Known Subinterfaces:
ConstructorInterceptor
,IntroductionInterceptor
,MethodInterceptor
- All Known Implementing Classes:
AbstractMonitoringInterceptor
,AbstractTraceInterceptor
,AfterReturningAdviceInterceptor
,AnnotationAsyncExecutionInterceptor
,AspectJAfterAdvice
,AspectJAfterThrowingAdvice
,AspectJAroundAdvice
,AsyncExecutionInterceptor
,CacheInterceptor
,ConcurrencyThrottleInterceptor
,CustomizableTraceInterceptor
,DebugInterceptor
,DelegatePerTargetObjectIntroductionInterceptor
,DelegatingIntroductionInterceptor
,EventPublicationInterceptor
,ExposeInvocationInterceptor
,JCacheInterceptor
,MBeanClientInterceptor
,MBeanProxyFactoryBean
,MethodBeforeAdviceInterceptor
,MethodValidationInterceptor
,OpenSessionInterceptor
,PerformanceMonitorInterceptor
,PersistenceExceptionTranslationInterceptor
,SimpleTraceInterceptor
,ThrowsAdviceInterceptor
,TransactionInterceptor
This interface represents a generic interceptor.
A generic interceptor can intercept runtime events that occur within a base program. Those events are materialized by (reified in) joinpoints. Runtime joinpoints can be invocations, field access, exceptions...
This interface is not used directly. Use the sub-interfaces to intercept specific events. For instance, the following class implements some specific interceptors in order to implement a debugger:
class DebuggingInterceptor implements MethodInterceptor, ConstructorInterceptor { Object invoke(MethodInvocation i) throws Throwable { debug(i.getMethod(), i.getThis(), i.getArgs()); return i.proceed(); } Object construct(ConstructorInvocation i) throws Throwable { debug(i.getConstructor(), i.getThis(), i.getArgs()); return i.proceed(); } void debug(AccessibleObject ao, Object this, Object value) { ... } }
- Author:
- Rod Johnson
- See Also: