Class AbstractRequestSingleton

  • All Implemented Interfaces:
    IScopeDestructionAware

    public abstract class AbstractRequestSingleton
    extends AbstractSingleton
    This is the base class for singleton objects that reside in the request scope. This class can be used for web scopes and non-web scopes as it handled in the same object.
    Author:
    Philip Helger
    See Also:
    EScope.REQUEST
    • Constructor Detail

      • AbstractRequestSingleton

        protected AbstractRequestSingleton()
    • Method Detail

      • getRequestSingleton

        @Nonnull
        public static final <T extends AbstractRequestSingleton> T getRequestSingleton​(@Nonnull
                                                                                       Class<T> aClass)
        Get the singleton object in the current request scope, using the passed class. If the singleton is not yet instantiated, a new instance is created.
        Type Parameters:
        T - The type to be returned
        Parameters:
        aClass - The class to be used. May not be null. The class must be public as needs to have a public no-argument constructor.
        Returns:
        The singleton object and never null.
      • getRequestSingletonIfInstantiated

        @Nullable
        public static final <T extends AbstractRequestSingleton> T getRequestSingletonIfInstantiated​(@Nonnull
                                                                                                     Class<T> aClass)
        Get the singleton object if it is already instantiated inside the current request scope or null if it is not instantiated.
        Type Parameters:
        T - The type to be returned
        Parameters:
        aClass - The class to be checked. May not be null.
        Returns:
        The singleton for the specified class is already instantiated, null otherwise.
      • isRequestSingletonInstantiated

        public static final boolean isRequestSingletonInstantiated​(@Nonnull
                                                                   Class<? extends AbstractRequestSingleton> aClass)
        Check if a singleton is already instantiated inside the current request scope
        Parameters:
        aClass - The class to be checked. May not be null.
        Returns:
        true if the singleton for the specified class is already instantiated, false otherwise.
      • getAllRequestSingletons

        @Nonnull
        @ReturnsMutableCopy
        public static final com.helger.commons.collection.impl.ICommonsList<AbstractRequestSingleton> getAllRequestSingletons()
        Get all instantiated singleton objects registered in the current request scope.
        Returns:
        A non-null list with all instances of this class in the current request scope.