Interface Store<T>


  • @API(status=EXPERIMENTAL,
         since="1.2.3")
    public interface Store<T>
    Experimental feature. Not ready for public usage yet.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Interface Description
      static class  Store.StoreFacade  
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      static <T> Store<T> create​(java.lang.Object identifier, Lifespan lifespan, java.util.function.Supplier<T> initializer)
      Create a new store for storing and retrieving values and objects in lifecycle hooks and lifecycle-dependent methods.
      static <T> Store<T> free​(java.util.function.Supplier<T> initializer)
      Create a "free" store, i.e. one that lives independently from a test run, property or try.
      T get()  
      static <T> Store<T> get​(java.lang.Object identifier)
      Retrieve a store that must be created somewhere else.
      static <T> Store<T> getOrCreate​(java.lang.Object identifier, Lifespan lifespan, java.util.function.Supplier<T> initializer)
      Find an existing store or create a new one if it doesn't exist.
      Lifespan lifespan()  
      Store<T> onClose​(java.util.function.Consumer<T> onCloseCallback)  
      void reset()  
      void update​(java.util.function.Function<T,​T> updater)  
    • Method Detail

      • get

        T get()
      • update

        void update​(java.util.function.Function<T,​T> updater)
      • reset

        void reset()
      • onClose

        @API(status=EXPERIMENTAL,
             since="1.2.4")
        Store<T> onClose​(java.util.function.Consumer<T> onCloseCallback)
      • create

        static <T> Store<T> create​(java.lang.Object identifier,
                                   Lifespan lifespan,
                                   java.util.function.Supplier<T> initializer)
        Create a new store for storing and retrieving values and objects in lifecycle hooks and lifecycle-dependent methods.

        Stores are created with respect to the current test / property. Therefore you _must not save created stores in member variables_, unless the containing object is unique per test / property.

        Type Parameters:
        T - The type of object to store
        Parameters:
        identifier - Any object to identify a store. Must be globally unique and stable, i.e. hashCode and equals must not change.
        lifespan - A stored object's lifespan
        initializer - Supplies the value to be used for initializing the store depending on its lifespan
        Returns:
        New store instance
      • getOrCreate

        static <T> Store<T> getOrCreate​(java.lang.Object identifier,
                                        Lifespan lifespan,
                                        java.util.function.Supplier<T> initializer)
        Find an existing store or create a new one if it doesn't exist.

        Stores are created with respect to the current test / property. Therefore you _must not save created stores in member variables_, unless the containing object is unique per test / property.

        Type Parameters:
        T - The type of object to store
        Parameters:
        identifier - Any object to identify a store. Must be globally unique and stable, i.e. hashCode and equals must not change.
        lifespan -
        initializer - Supplies the value to be used for initializing the store depending on its lifespan
        Returns:
        New or existing store instance
      • get

        static <T> Store<T> get​(java.lang.Object identifier)
        Retrieve a store that must be created somewhere else.
        Type Parameters:
        T - The type of object to store
        Parameters:
        identifier - Any object to identify a store. Must be globally unique and stable, i.e. hashCode and equals must not change.
        Returns:
        Existing store instance
        Throws:
        CannotFindStoreException
      • free

        @API(status=EXPERIMENTAL,
             since="1.5.0")
        static <T> Store<T> free​(java.util.function.Supplier<T> initializer)
        Create a "free" store, i.e. one that lives independently from a test run, property or try.
        Type Parameters:
        T - The type of object to store
        Parameters:
        initializer - Supplies the value to be used for initializing the store depending on its lifespan
        Returns:
        New store instance