com.vaadin.util.

Class CurrentInstance

  • All Implemented Interfaces:

    Serializable

    public class CurrentInstance
    extends Object
    implements Serializable

    Keeps track of various current instances for the current thread. All the instances are automatically cleared after handling a request from the client to avoid leaking memory.

    Please note that the instances are stored using WeakReference. This means that the a current instance value may suddenly disappear if there a no other references to the object.

    Currently the framework uses the following instances:

    UI, VaadinService, VaadinSession, VaadinRequest, VaadinResponse.

    Since:

    7.0.0

    Author:

    Vaadin Ltd

    See Also:

    Serialized Form

    • Method Detail

      • defineFallbackResolver

        public static <T> void defineFallbackResolver​(Class<T> type,
                                                      CurrentInstanceFallbackResolver<T> fallbackResolver)

        Adds a CurrentInstanceFallbackResolver, that is triggered when get(Class) can't find a suitable instance for the given type parameter.

        Parameters:

        type - the class used on get(Class) invocations to retrieve the current instance

        fallbackResolver - the resolver, not null

        Throws:

        IllegalArgumentException - if there's already a defined fallback resolver for the given type

        Since:

        8.5.2

      • set

        public static <T> CurrentInstance set​(Class<T> type,
                                              T instance)

        Sets the current instance of the given type.

        Parameters:

        type - the class that should be used when getting the current instance back

        instance - the actual instance

        See Also:

        ThreadLocal

      • clearAll

        public static void clearAll()

        Clears all current instances.

      • restoreInstances

        public static void restoreInstances​(Map<Class<?>,​CurrentInstance> old)

        Restores the given instances to the given values. Note that this should only be used internally to restore Vaadin classes.

        Parameters:

        old - A Class -> CurrentInstance map to set as current instances

        Since:

        7.1

      • getInstances

        public static Map<Class<?>,​CurrentInstance> getInstances()

        Gets the currently set instances so that they can later be restored using restoreInstances(Map).

        Returns:

        a map containing the current instances

        Since:

        8.0

      • setCurrent

        public static Map<Class<?>,​CurrentInstance> setCurrent​(UI ui)

        Sets current instances for the UI and all related classes. The previously defined values can be restored by passing the returned map to restoreInstances(Map).

        Parameters:

        ui - The UI

        Returns:

        A map containing the old values of the instances that this method updated.

        Since:

        7.1

      • setCurrent

        public static Map<Class<?>,​CurrentInstance> setCurrent​(VaadinSession session)

        Sets current instances for the VaadinSession and all related classes. The previously defined values can be restored by passing the returned map to restoreInstances(Map).

        Parameters:

        session - The VaadinSession

        Returns:

        A map containing the old values of the instances this method updated.

        Since:

        7.1