Class DefaultContextManager

  • All Implemented Interfaces:
    ContextManager

    public class DefaultContextManager
    extends java.lang.Object
    implements ContextManager
    Author:
    Fabrizio Giudici
    • Constructor Detail

      • DefaultContextManager

        public DefaultContextManager()
    • Method Detail

      • getContexts

        @Nonnull
        public java.util.List<java.lang.Object> getContexts()
        Returns the list of current contexts, ordered by their priority.
        Specified by:
        getContexts in interface ContextManager
        Returns:
        the list of current contexts
      • findContextOfType

        @Nonnull
        public <T> T findContextOfType​(@Nonnull
                                       java.lang.Class<T> contextType)
                                throws NotFoundException
        Finds a current context instance of the given type.
        Specified by:
        findContextOfType in interface ContextManager
        Type Parameters:
        T - the static context type
        Parameters:
        contextType - the dynamic context type
        Returns:
        the requested context
        Throws:
        NotFoundException - if no context of that type is found
      • addGlobalContext

        public void addGlobalContext​(@Nonnull
                                     java.lang.Object context)
        Adds a global context.
        Specified by:
        addGlobalContext in interface ContextManager
        Parameters:
        context - the new context
      • removeGlobalContext

        public void removeGlobalContext​(@Nonnull
                                        java.lang.Object context)
        Removes a global context.
        Specified by:
        removeGlobalContext in interface ContextManager
        Parameters:
        context - the context
      • addLocalContext

        public void addLocalContext​(@Nonnull
                                    java.lang.Object context)
        Adds a local context.
        Specified by:
        addLocalContext in interface ContextManager
        Parameters:
        context - the new context
      • removeLocalContext

        public void removeLocalContext​(@Nonnull
                                       java.lang.Object context)
        Removes a local context.
        Specified by:
        removeLocalContext in interface ContextManager
        Parameters:
        context - the context
      • runEWithContexts

        @Nonnull
        public <T,​E extends java.lang.Throwable> T runEWithContexts​(@Nonnull
                                                                          ContextManager.SupplierWithException<T,​E> supplier,
                                                                          @Nonnull
                                                                          java.lang.Object... contexts)
                                                                   throws E extends java.lang.Throwable
        Calls a task with some local contexts. This method fits functional interfaces.
        Specified by:
        runEWithContexts in interface ContextManager
        Type Parameters:
        T - the type of the returned value
        E - the type of the thrown exception
        Parameters:
        supplier - the task to call
        contexts - the contexts
        Returns:
        the value returned by the supplier
        Throws:
        E - the original exception thrown by task
        E extends java.lang.Throwable