Interface IBaseInterceptorService<POINTCUT extends IPointcut>

All Superinterfaces:
IBaseInterceptorBroadcaster<POINTCUT>
All Known Subinterfaces:
IInterceptorService
All Known Implementing Classes:
BaseInterceptorService, InterceptorService

public interface IBaseInterceptorService<POINTCUT extends IPointcut> extends IBaseInterceptorBroadcaster<POINTCUT>
  • Method Details

    • registerThreadLocalInterceptor

      Deprecated.
      Threadlocal interceptors have been deprecated as of HAPI FHIR 6.2.0 and will be removed in a future release due to lack of use. If you feel that this is a bad decision, please speak up on the HAPI FHIR mailing list.
      Register an interceptor that will be used in a ThreadLocal context. This means that events will only be broadcast to the given interceptor if they were fired from the current thread.

      Note that it is almost always desirable to call this method with a try-finally statement that removes the interceptor afterwards, since this can lead to memory leakage, poor performance due to ever-increasing numbers of interceptors, etc.

      Note that most methods such as getAllRegisteredInterceptors() and unregisterAllInterceptors() do not affect thread local interceptors as they are kept in a separate list.

      ThreadLocal interceptors are now disabled by default as of HAPI FHIR 6.2.0 and must be manually enabled by calling BaseInterceptorService.setThreadlocalInvokersEnabled(boolean). They are now deprecated. Registering a threadlocal interceptor without enabling this feature will result in a IllegalArgumentException.

      Parameters:
      theInterceptor - The interceptor
      Returns:
      Returns true if at least one valid hook method was found on this interceptor
    • unregisterThreadLocalInterceptor

      Deprecated.
      Threadlocal interceptors have been deprecated as of HAPI FHIR 6.2.0 and will be removed in a future release due to lack of use. If you feel that this is a bad decision, please speak up on the HAPI FHIR mailing list.
      Unregisters a ThreadLocal interceptor

      ThreadLocal interceptors are now disabled by default as of HAPI FHIR 6.2.0 and must be manually enabled by calling BaseInterceptorService.setThreadlocalInvokersEnabled(boolean). They are now deprecated. Registering a threadlocal interceptor without enabling this feature will result in a IllegalArgumentException.

      Parameters:
      theInterceptor - The interceptor
      See Also:
    • registerInterceptor

      boolean registerInterceptor(Object theInterceptor)
      Register an interceptor. This method has no effect if the given interceptor is already registered.
      Parameters:
      theInterceptor - The interceptor to register
      Returns:
      Returns true if at least one valid hook method was found on this interceptor
    • unregisterInterceptor

      boolean unregisterInterceptor(Object theInterceptor)
      Unregister an interceptor. This method has no effect if the given interceptor is not already registered.
      Parameters:
      theInterceptor - The interceptor to unregister
      Returns:
      Returns true if the interceptor was found and removed
    • getAllRegisteredInterceptors

      Returns all currently registered interceptors (excluding any thread local interceptors).
    • unregisterAllInterceptors

      Unregisters all registered interceptors. Note that this method does not unregister any thread local interceptors.
    • unregisterInterceptors

      void unregisterInterceptors(@Nullable Collection<?> theInterceptors)
    • registerInterceptors

      void registerInterceptors(@Nullable Collection<?> theInterceptors)
    • unregisterInterceptorsIf

      void unregisterInterceptorsIf(Predicate<Object> theShouldUnregisterFunction)
      Unregisters all interceptors that are indicated by the given callback function returning true
    • unregisterAllAnonymousInterceptors

      Unregisters all anonymous interceptors (i.e. all interceptors registered with registerAnonymousInterceptor)