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
Modifier and TypeClassDescriptionprotected static class
protected class
-
Constructor Summary
ConstructorDescriptionBaseInterceptorService
(Class<POINTCUT> thePointcutType) Constructor which uses a default name of "default"BaseInterceptorService
(Class<POINTCUT> thePointcutType, String theName) Constructor -
Method Summary
Modifier and TypeMethodDescriptionboolean
callHooks
(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).protected Class
<?> boolean
Does this broadcaster have any hooks for the given pointcut?protected void
registerAnonymousInterceptor
(POINTCUT thePointcut, Object theInterceptor, BaseInterceptorService.BaseInvoker theInvoker) boolean
registerInterceptor
(Object theInterceptor) Register an interceptor.void
registerInterceptors
(Collection<?> theInterceptors) protected abstract Optional
<BaseInterceptorService<POINTCUT>.HookDescriptor> scanForHook
(Method nextMethod) void
void
setWarnOnInterceptorWithNoHooks
(boolean theWarnOnInterceptorWithNoHooks) Should a warning be issued if an interceptor is registered and it has no hooksvoid
Unregisters all anonymous interceptors (i.e.void
Unregisters all registered interceptors.boolean
unregisterInterceptor
(Object theInterceptor) Unregister an interceptor.void
unregisterInterceptors
(Collection<?> theInterceptors) void
unregisterInterceptorsIf
(Predicate<Object> theShouldUnregisterFunction) Unregisters all interceptors that are indicated by the given callback function returningtrue
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface ca.uhn.fhir.interceptor.api.IBaseInterceptorBroadcaster
ifHasCallHooks, ifHasCallHooksAndReturnObject
-
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:IBaseInterceptorService
Returns all currently registered interceptors (excluding any thread local interceptors).- Specified by:
getAllRegisteredInterceptors
in interfaceIBaseInterceptorService<POINTCUT extends Enum<POINTCUT> & IPointcut>
-
unregisterAllInterceptors
Description copied from interface:IBaseInterceptorService
Unregisters all registered interceptors.- Specified by:
unregisterAllInterceptors
in interfaceIBaseInterceptorService<POINTCUT extends Enum<POINTCUT> & IPointcut>
-
unregisterInterceptors
- Specified by:
unregisterInterceptors
in interfaceIBaseInterceptorService<POINTCUT extends Enum<POINTCUT> & IPointcut>
-
registerInterceptors
- Specified by:
registerInterceptors
in interfaceIBaseInterceptorService<POINTCUT extends Enum<POINTCUT> & IPointcut>
-
unregisterAllAnonymousInterceptors
Description copied from interface:IBaseInterceptorService
Unregisters all anonymous interceptors (i.e. all interceptors registered withregisterAnonymousInterceptor
)- Specified by:
unregisterAllAnonymousInterceptors
in interfaceIBaseInterceptorService<POINTCUT extends Enum<POINTCUT> & IPointcut>
-
unregisterInterceptorsIf
Description copied from interface:IBaseInterceptorService
Unregisters all interceptors that are indicated by the given callback function returningtrue
- Specified by:
unregisterInterceptorsIf
in interfaceIBaseInterceptorService<POINTCUT extends Enum<POINTCUT> & IPointcut>
-
registerInterceptor
Description copied from interface:IBaseInterceptorService
Register an interceptor. This method has no effect if the given interceptor is already registered.- Specified by:
registerInterceptor
in interfaceIBaseInterceptorService<POINTCUT extends Enum<POINTCUT> & IPointcut>
- Parameters:
theInterceptor
- The interceptor to register- Returns:
- Returns
true
if at least one valid hook method was found on this interceptor
-
unregisterInterceptor
Description copied from interface:IBaseInterceptorService
Unregister an interceptor. This method has no effect if the given interceptor is not already registered.- Specified by:
unregisterInterceptor
in interfaceIBaseInterceptorService<POINTCUT extends Enum<POINTCUT> & IPointcut>
- Parameters:
theInterceptor
- The interceptor to unregister- Returns:
- Returns
true
if the interceptor was found and removed
-
callHooksAndReturnObject
Description copied from interface:IBaseInterceptorBroadcaster
Invoke registered interceptor hook methods for the given Pointcut. This method should only be called for pointcuts that return a type other thanvoid
orboolean
- Specified by:
callHooksAndReturnObject
in 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:IBaseInterceptorBroadcaster
Does this broadcaster have any hooks for the given pointcut? -
getBooleanReturnType
-
callHooks
Description copied from interface:IBaseInterceptorBroadcaster
Invoke 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)
-