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 interface 
    Any value that implements this interface will automatically be closed when its store goes out of scope.
    static class 
     
  • Method Summary

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

    • get

      T get()
    • lifespan

      Lifespan lifespan()
    • update

      void update(Function<T,T> updater)
    • reset

      @API(status=INTERNAL, since="1.6.3") void reset()
    • create

      static <T> Store<T> create(Object identifier, Lifespan lifespan, Supplier<T> initialValueSupplier)
      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
      initialValueSupplier - Supplies the value to be used for initializing the store depending on its lifespan
      Returns:
      New store instance
    • getOrCreate

      static <T> Store<T> getOrCreate(Object identifier, Lifespan lifespan, Supplier<T> initialValueSupplier)
      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 - A stored object's lifespan
      initialValueSupplier - 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(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(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