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: