Package net.jqwik.api.lifecycle
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 interfaceStore.CloseOnResetAny value that implements this interface will automatically be closed when its store goes out of scope.static classStore.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> initialValueSupplier)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.Tget()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> initialValueSupplier)Find an existing store or create a new one if it doesn't exist.Lifespanlifespan()voidreset()voidupdate(java.util.function.Function<T,T> updater)
-
-
-
Method Detail
-
get
T get()
-
lifespan
Lifespan lifespan()
-
reset
@API(status=INTERNAL, since="1.6.3") void reset()
-
create
static <T> Store<T> create(java.lang.Object identifier, Lifespan lifespan, java.util.function.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 lifespaninitialValueSupplier- 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> 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 lifespaninitialValueSupplier- 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
-
-