Package ca.uhn.fhir.interceptor.executor
Class BaseInterceptorService<POINTCUT extends Enum<POINTCUT> & IPointcut>
java.lang.Object
ca.uhn.fhir.interceptor.executor.BaseInterceptorService<POINTCUT>
- All Implemented Interfaces:
IBaseInterceptorBroadcaster<POINTCUT>,IBaseInterceptorService<POINTCUT>
- Direct Known Subclasses:
InterceptorService
public abstract class BaseInterceptorService<POINTCUT extends Enum<POINTCUT> & IPointcut>
extends Object
implements IBaseInterceptorService<POINTCUT>, IBaseInterceptorBroadcaster<POINTCUT>
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classprotected class -
Constructor Summary
ConstructorsConstructorDescriptionBaseInterceptorService(Class<POINTCUT> thePointcutType) Constructor which uses a default name of "default"BaseInterceptorService(Class<POINTCUT> thePointcutType, String theName) Constructor -
Method Summary
Modifier and TypeMethodDescriptionbooleancallHooks(POINTCUT thePointcut, HookParams theParams) Invoke registered interceptor hook methods for the given Pointcut.callHooksAndReturnObject(POINTCUT thePointcut, HookParams theParams) Invoke registered interceptor hook methods for the given Pointcut.protected static <T extends Annotation>
Optional<T>findAnnotation(AnnotatedElement theObject, Class<T> theHookClass) Returns all currently registered interceptors (excluding any thread local interceptors).booleanDoes this broadcaster have any hooks for the given pointcut?protected voidregisterAnonymousInterceptor(POINTCUT thePointcut, Object theInterceptor, BaseInterceptorService.BaseInvoker theInvoker) booleanregisterInterceptor(Object theInterceptor) Register an interceptor.voidregisterInterceptors(Collection<?> theInterceptors) protected abstract Optional<BaseInterceptorService<POINTCUT>.HookDescriptor>scanForHook(Method nextMethod) voidvoidsetWarnOnInterceptorWithNoHooks(boolean theWarnOnInterceptorWithNoHooks) Should a warning be issued if an interceptor is registered and it has no hooksvoidUnregisters all anonymous interceptors (i.e.voidUnregisters all registered interceptors.booleanunregisterInterceptor(Object theInterceptor) Unregister an interceptor.voidunregisterInterceptors(Collection<?> theInterceptors) voidunregisterInterceptorsIf(Predicate<Object> theShouldUnregisterFunction) Unregisters all interceptors that are indicated by the given callback function returningtrue
-
Constructor Details
-
BaseInterceptorService
Constructor which uses a default name of "default" -
BaseInterceptorService
Constructor- Parameters:
theName- The name for this registry (useful for troubleshooting)
-
-
Method Details
-
setWarnOnInterceptorWithNoHooks
Should a warning be issued if an interceptor is registered and it has no hooks -
setName
-
registerAnonymousInterceptor
protected void registerAnonymousInterceptor(POINTCUT thePointcut, Object theInterceptor, BaseInterceptorService.BaseInvoker theInvoker) -
getAllRegisteredInterceptors
Description copied from interface:IBaseInterceptorServiceReturns all currently registered interceptors (excluding any thread local interceptors).- Specified by:
getAllRegisteredInterceptorsin interfaceIBaseInterceptorService<POINTCUT extends Enum<POINTCUT> & IPointcut>
-
unregisterAllInterceptors
Description copied from interface:IBaseInterceptorServiceUnregisters all registered interceptors.- Specified by:
unregisterAllInterceptorsin interfaceIBaseInterceptorService<POINTCUT extends Enum<POINTCUT> & IPointcut>
-
unregisterInterceptors
- Specified by:
unregisterInterceptorsin interfaceIBaseInterceptorService<POINTCUT extends Enum<POINTCUT> & IPointcut>
-
registerInterceptors
- Specified by:
registerInterceptorsin interfaceIBaseInterceptorService<POINTCUT extends Enum<POINTCUT> & IPointcut>
-
unregisterAllAnonymousInterceptors
Description copied from interface:IBaseInterceptorServiceUnregisters all anonymous interceptors (i.e. all interceptors registered withregisterAnonymousInterceptor)- Specified by:
unregisterAllAnonymousInterceptorsin interfaceIBaseInterceptorService<POINTCUT extends Enum<POINTCUT> & IPointcut>
-
unregisterInterceptorsIf
Description copied from interface:IBaseInterceptorServiceUnregisters all interceptors that are indicated by the given callback function returningtrue- Specified by:
unregisterInterceptorsIfin interfaceIBaseInterceptorService<POINTCUT extends Enum<POINTCUT> & IPointcut>
-
registerInterceptor
Description copied from interface:IBaseInterceptorServiceRegister an interceptor. This method has no effect if the given interceptor is already registered.- Specified by:
registerInterceptorin interfaceIBaseInterceptorService<POINTCUT extends Enum<POINTCUT> & IPointcut>- Parameters:
theInterceptor- The interceptor to register- Returns:
- Returns
trueif at least one valid hook method was found on this interceptor
-
unregisterInterceptor
Description copied from interface:IBaseInterceptorServiceUnregister an interceptor. This method has no effect if the given interceptor is not already registered.- Specified by:
unregisterInterceptorin interfaceIBaseInterceptorService<POINTCUT extends Enum<POINTCUT> & IPointcut>- Parameters:
theInterceptor- The interceptor to unregister- Returns:
- Returns
trueif the interceptor was found and removed
-
callHooksAndReturnObject
Description copied from interface:IBaseInterceptorBroadcasterInvoke registered interceptor hook methods for the given Pointcut. This method should only be called for pointcuts that return a type other thanvoidorboolean- Specified by:
callHooksAndReturnObjectin interfaceIBaseInterceptorBroadcaster<POINTCUT extends Enum<POINTCUT> & IPointcut>- Returns:
- Returns the object returned by the first hook method that did not return
null
-
hasHooks
Description copied from interface:IBaseInterceptorBroadcasterDoes this broadcaster have any hooks for the given pointcut? -
callHooks
Description copied from interface:IBaseInterceptorBroadcasterInvoke registered interceptor hook methods for the given Pointcut. -
scanForHook
protected abstract Optional<BaseInterceptorService<POINTCUT>.HookDescriptor> scanForHook(Method nextMethod) -
findAnnotation
protected static <T extends Annotation> Optional<T> findAnnotation(AnnotatedElement theObject, Class<T> theHookClass)
-