Class ReactorScope<T>

java.lang.Object
io.inverno.mod.base.Scope<T>
io.inverno.mod.base.concurrent.ReactorScope<T>
Type Parameters:
T - the type of the scoped instances

public abstract class ReactorScope<T> extends Scope<T>

A reactor scope is used to provide bean instances bound to the current reactor thread.

This implementation is backed by a FastThreadLocal.

Since:
1.2
Author:
Jeremy Kuhn
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a thread scope.
  • Method Summary

    Modifier and Type
    Method
    Description
    final T
    get()
    Returns the instance bound to the current reactor thread.
    protected void
    hookOnGet(T instance)
    Optional hook executed when an instance is retrieved.
    final void
    Removes the instance currently bound to the current thread.

    Methods inherited from class io.inverno.mod.base.Scope

    create

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ReactorScope

      public ReactorScope()

      Creates a thread scope.

  • Method Details

    • hookOnGet

      protected void hookOnGet(T instance)

      Optional hook executed when an instance is retrieved.

      Parameters:
      instance - the instance
    • get

      public final T get()

      Returns the instance bound to the current reactor thread.

      If no instance is bound to the key, a new instance is created and kept in the scope.

      Returns:
      the instance
      Throws:
      IllegalStateException - when the method is invoked outside the reactor
    • remove

      public final void remove()

      Removes the instance currently bound to the current thread.

      Throws:
      IllegalStateException - when the method is invoked outside the reactor