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:

    VaadinRequest, VaadinResponse, UI, VaadinService, VaadinSession.

    For internal use only. May be renamed or removed in a future release.

    Since:
    1.0
    Author:
    Vaadin Ltd
    See Also:
    Serialized Form
    • Method Detail

      • get

        public static <T> T get​(Class<T> type)
        Gets the current instance of a specific type if available.
        Type Parameters:
        T - the instance type
        Parameters:
        type - the class to get an instance of
        Returns:
        the current instance or the provided type, or null if there is no current instance.
      • set

        public static <T> void set​(Class<T> type,
                                   T instance)
        Sets the current instance of the given type.
        Type Parameters:
        T - the instance 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
      • 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
      • 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.
      • 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.